
int der_length_ia5_string(uchar *octets,ulong noctets,ulong *outlen)

{
  byte *pbVar1;
  uint uVar2;
  int iVar3;
  
  if (outlen == (ulong *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);
  }
  if (octets == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);
  }
  pbVar1 = octets + noctets;
  if (noctets != 0) {
    uVar2 = (int)pbVar1 - (int)octets & 7;
    if (uVar2 == 0) goto LAB_00172861;
    if (uVar2 != 1) {
      if (uVar2 != 2) {
        if (uVar2 != 3) {
          if (uVar2 != 4) {
            if (uVar2 != 5) {
              if (uVar2 != 6) {
                iVar3 = der_ia5_char_encode((uint)*octets);
                if (iVar3 == -1) {
                  return 0x10;
                }
                octets = octets + 1;
              }
              iVar3 = der_ia5_char_encode((uint)*octets);
              if (iVar3 == -1) {
                return 0x10;
              }
              octets = octets + 1;
            }
            iVar3 = der_ia5_char_encode((uint)*octets);
            if (iVar3 == -1) {
              return 0x10;
            }
            octets = octets + 1;
          }
          iVar3 = der_ia5_char_encode((uint)*octets);
          if (iVar3 == -1) {
            return 0x10;
          }
          octets = octets + 1;
        }
        iVar3 = der_ia5_char_encode((uint)*octets);
        if (iVar3 == -1) {
          return 0x10;
        }
        octets = octets + 1;
      }
      iVar3 = der_ia5_char_encode((uint)*octets);
      if (iVar3 == -1) {
        return 0x10;
      }
      octets = octets + 1;
    }
    iVar3 = der_ia5_char_encode((uint)*octets);
    if (iVar3 == -1) {
      return 0x10;
    }
    for (octets = octets + 1; octets != pbVar1; octets = octets + 8) {
LAB_00172861:
      iVar3 = der_ia5_char_encode((uint)*octets);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode((uint)octets[1]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode((uint)octets[2]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode((uint)octets[3]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode((uint)octets[4]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode((uint)octets[5]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode((uint)octets[6]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode((uint)octets[7]);
      if (iVar3 == -1) {
        return 0x10;
      }
    }
    if (0x7f < noctets) {
      if (noctets < 0x100) {
        *outlen = noctets + 3;
        return 0;
      }
      if (0xffff < noctets) {
        if (noctets < 0x1000000) {
          *outlen = noctets + 5;
          return 0;
        }
        return 0x10;
      }
      *outlen = noctets + 4;
      return 0;
    }
  }
  *outlen = noctets + 2;
  return 0;
}



undefined8 der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)

{
  undefined1 *puVar1;
  uint uVar2;
  int iVar3;
  
  if (param_3 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);
  }
  if (param_1 == (undefined1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);
  }
  puVar1 = param_1 + param_2;
  if (param_2 != 0) {
    uVar2 = (int)puVar1 - (int)param_1 & 7;
    if (uVar2 == 0) goto LAB_00172861;
    if (uVar2 != 1) {
      if (uVar2 != 2) {
        if (uVar2 != 3) {
          if (uVar2 != 4) {
            if (uVar2 != 5) {
              if (uVar2 != 6) {
                iVar3 = der_ia5_char_encode(*param_1);
                if (iVar3 == -1) {
                  return 0x10;
                }
                param_1 = param_1 + 1;
              }
              iVar3 = der_ia5_char_encode(*param_1);
              if (iVar3 == -1) {
                return 0x10;
              }
              param_1 = param_1 + 1;
            }
            iVar3 = der_ia5_char_encode(*param_1);
            if (iVar3 == -1) {
              return 0x10;
            }
            param_1 = param_1 + 1;
          }
          iVar3 = der_ia5_char_encode(*param_1);
          if (iVar3 == -1) {
            return 0x10;
          }
          param_1 = param_1 + 1;
        }
        iVar3 = der_ia5_char_encode(*param_1);
        if (iVar3 == -1) {
          return 0x10;
        }
        param_1 = param_1 + 1;
      }
      iVar3 = der_ia5_char_encode(*param_1);
      if (iVar3 == -1) {
        return 0x10;
      }
      param_1 = param_1 + 1;
    }
    iVar3 = der_ia5_char_encode(*param_1);
    if (iVar3 == -1) {
      return 0x10;
    }
    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {
LAB_00172861:
      iVar3 = der_ia5_char_encode(*param_1);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[1]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[2]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[3]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[4]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[5]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[6]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[7]);
      if (iVar3 == -1) {
        return 0x10;
      }
    }
    if (0x7f < param_2) {
      if (param_2 < 0x100) {
        *param_3 = param_2 + 3;
        return 0;
      }
      if (0xffff < param_2) {
        if (param_2 < 0x1000000) {
          *param_3 = param_2 + 5;
          return 0;
        }
        return 0x10;
      }
      *param_3 = param_2 + 4;
      return 0;
    }
  }
  *param_3 = param_2 + 2;
  return 0;
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
TEST RDX,RDX
JZ 0x00172925
MOV R12,RSI
MOV R13,RDX
TEST RDI,RDI
JZ 0x0017293d
MOV RBX,RDI
LEA RBP,[RDI + RSI*0x1]
TEST RSI,RSI
JZ 0x00172955
MOV RAX,RBP
SUB RAX,RDI
AND EAX,0x7
JZ 0x00172861
CMP RAX,0x1
JZ 0x00172843
CMP RAX,0x2
JZ 0x0017282e
CMP RAX,0x3
JZ 0x00172819
CMP RAX,0x4
JZ 0x00172804
CMP RAX,0x5
JZ 0x001727ef
CMP RAX,0x6
JZ 0x001727da
MOVZX EDI,byte ptr [RDI]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
ADD RBX,0x1
MOVZX EDI,byte ptr [RBX]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
ADD RBX,0x1
MOVZX EDI,byte ptr [RBX]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
ADD RBX,0x1
MOVZX EDI,byte ptr [RBX]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
ADD RBX,0x1
MOVZX EDI,byte ptr [RBX]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
ADD RBX,0x1
MOVZX EDI,byte ptr [RBX]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
ADD RBX,0x1
MOVZX EDI,byte ptr [RBX]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
ADD RBX,0x1
CMP RBX,RBP
JZ 0x00172907
MOVZX EDI,byte ptr [RBX]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
LEA R14,[RBX + 0x1]
MOVZX EDI,byte ptr [RBX + 0x1]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
MOVZX EDI,byte ptr [R14 + 0x1]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
MOVZX EDI,byte ptr [R14 + 0x2]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
MOVZX EDI,byte ptr [R14 + 0x3]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
MOVZX EDI,byte ptr [R14 + 0x4]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
MOVZX EDI,byte ptr [R14 + 0x5]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
MOVZX EDI,byte ptr [R14 + 0x6]
CALL 0x00113150
CMP EAX,-0x1
JZ 0x00172999
LEA RBX,[R14 + 0x7]
CMP RBX,RBP
JNZ 0x00172861
CMP R12,0x7f
JBE 0x00172955
CMP R12,0xff
JA 0x00172964
ADD R12,0x3
MOV qword ptr [R13],R12
MOV EAX,0x0
JMP 0x0017299e
MOV EDX,0x9e
LEA RSI,[0x1c5e68]
LEA RDI,[0x1b1724]
CALL 0x00114260
MOV EDX,0x9f
LEA RSI,[0x1c5e68]
LEA RDI,[0x1c5e94]
CALL 0x00114260
ADD R12,0x2
MOV qword ptr [R13],R12
MOV EAX,0x0
JMP 0x0017299e
CMP R12,0xffff
JA 0x0017297c
ADD R12,0x4
MOV qword ptr [R13],R12
MOV EAX,0x0
JMP 0x0017299e
MOV EAX,0x10
CMP R12,0xffffff
JA 0x0017299e
ADD R12,0x5
MOV qword ptr [R13],R12
MOV EAX,0x0
JMP 0x0017299e
MOV EAX,0x10
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
(translation_unit "undefined8 der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (param_3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (param_1 == (undefined1 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  puVar1 = param_1 + param_2;\n  if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }\n  *param_3 = param_2 + 2;\n  return 0;\n}\n\n" (function_definition "undefined8 der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (param_3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (param_1 == (undefined1 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  puVar1 = param_1 + param_2;\n  if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }\n  *param_3 = param_2 + 2;\n  return 0;\n}" type_identifier (function_declarator "der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)" identifier (parameter_list "(undefined1 *param_1,ulong param_2,long *param_3)" ( (parameter_declaration "undefined1 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (param_3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (param_1 == (undefined1 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  puVar1 = param_1 + param_2;\n  if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }\n  *param_3 = param_2 + 2;\n  return 0;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if (param_3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }" { comment (expression_statement "crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);" (call_expression "crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e)" identifier (argument_list "("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e)" ( (string_literal ""outlen != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/ia5/der_length_ia5_string.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_1 == (undefined1 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }" if (parenthesized_expression "(param_1 == (undefined1 *)0x0)" ( (binary_expression "param_1 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }" { comment (expression_statement "crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);" (call_expression "crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f)" identifier (argument_list "("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f)" ( (string_literal ""octets != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/ia5/der_length_ia5_string.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "puVar1 = param_1 + param_2;" (assignment_expression "puVar1 = param_1 + param_2" identifier = (binary_expression "param_1 + param_2" identifier + identifier)) ;) (if_statement "if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }" { (expression_statement "uVar2 = (int)puVar1 - (int)param_1 & 7;" (assignment_expression "uVar2 = (int)puVar1 - (int)param_1 & 7" identifier = (binary_expression "(int)puVar1 - (int)param_1 & 7" (binary_expression "(int)puVar1 - (int)param_1" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (if_statement "if (uVar2 == 0) goto LAB_00172861;" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00172861;" goto statement_identifier ;)) (if_statement "if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }" if (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }" { (if_statement "if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }" { (if_statement "if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }" if (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }" { (if_statement "if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }" if (parenthesized_expression "(uVar2 != 4)" ( (binary_expression "uVar2 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }" { (if_statement "if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }" if (parenthesized_expression "(uVar2 != 5)" ( (binary_expression "uVar2 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }" { (if_statement "if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }" if (parenthesized_expression "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )) (compound_statement "{\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }" { (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n                  return 0x10;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  return 0x10;\n                }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n                return 0x10;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                return 0x10;\n              }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n              return 0x10;\n            }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n              return 0x10;\n            }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n            return 0x10;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            return 0x10;\n          }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n          return 0x10;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          return 0x10;\n        }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n      return 0x10;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      return 0x10;\n    }" { (return_statement "return 0x10;" return number_literal ;) })) (for_statement "for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }" for ( (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ; (binary_expression "param_1 != puVar1" identifier != identifier) ; (assignment_expression "param_1 = param_1 + 8" identifier = (binary_expression "param_1 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }" { (labeled_statement "LAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);" statement_identifier : (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;)) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[1]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[1])" identifier = (call_expression "der_ia5_char_encode(param_1[1])" identifier (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[2]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[2])" identifier = (call_expression "der_ia5_char_encode(param_1[2])" identifier (argument_list "(param_1[2])" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[3]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[3])" identifier = (call_expression "der_ia5_char_encode(param_1[3])" identifier (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[4]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[4])" identifier = (call_expression "der_ia5_char_encode(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[5]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[5])" identifier = (call_expression "der_ia5_char_encode(param_1[5])" identifier (argument_list "(param_1[5])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[6]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[6])" identifier = (call_expression "der_ia5_char_encode(param_1[6])" identifier (argument_list "(param_1[6])" ( (subscript_expression "param_1[6]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[7]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[7])" identifier = (call_expression "der_ia5_char_encode(param_1[7])" identifier (argument_list "(param_1[7])" ( (subscript_expression "param_1[7]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) })) (if_statement "if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }" if (parenthesized_expression "(0x7f < param_2)" ( (binary_expression "0x7f < param_2" number_literal < identifier) )) (compound_statement "{\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }" { (if_statement "if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }" if (parenthesized_expression "(param_2 < 0x100)" ( (binary_expression "param_2 < 0x100" identifier < number_literal) )) (compound_statement "{\n        *param_3 = param_2 + 3;\n        return 0;\n      }" { (expression_statement "*param_3 = param_2 + 3;" (assignment_expression "*param_3 = param_2 + 3" (pointer_expression "*param_3" * identifier) = (binary_expression "param_2 + 3" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }" if (parenthesized_expression "(0xffff < param_2)" ( (binary_expression "0xffff < param_2" number_literal < identifier) )) (compound_statement "{\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }" { (if_statement "if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }" if (parenthesized_expression "(param_2 < 0x1000000)" ( (binary_expression "param_2 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n          *param_3 = param_2 + 5;\n          return 0;\n        }" { (expression_statement "*param_3 = param_2 + 5;" (assignment_expression "*param_3 = param_2 + 5" (pointer_expression "*param_3" * identifier) = (binary_expression "param_2 + 5" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "*param_3 = param_2 + 4;" (assignment_expression "*param_3 = param_2 + 4" (pointer_expression "*param_3" * identifier) = (binary_expression "param_2 + 4" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "*param_3 = param_2 + 2;" (assignment_expression "*param_3 = param_2 + 2" (pointer_expression "*param_3" * identifier) = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int der_length_ia5_string(uchar *octets,ulong noctets,ulong *outlen)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (outlen == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (octets == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  pbVar1 = octets + noctets;\n  if (noctets != 0) {\n    uVar2 = (int)pbVar1 - (int)octets & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      octets = octets + 1;\n    }\n    iVar3 = der_ia5_char_encode((uint)*octets);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (octets = octets + 1; octets != pbVar1; octets = octets + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < noctets) {\n      if (noctets < 0x100) {\n        *outlen = noctets + 3;\n        return 0;\n      }\n      if (0xffff < noctets) {\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *outlen = noctets + 4;\n      return 0;\n    }\n  }\n  *outlen = noctets + 2;\n  return 0;\n}\n\n" (function_definition "int der_length_ia5_string(uchar *octets,ulong noctets,ulong *outlen)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (outlen == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (octets == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  pbVar1 = octets + noctets;\n  if (noctets != 0) {\n    uVar2 = (int)pbVar1 - (int)octets & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      octets = octets + 1;\n    }\n    iVar3 = der_ia5_char_encode((uint)*octets);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (octets = octets + 1; octets != pbVar1; octets = octets + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < noctets) {\n      if (noctets < 0x100) {\n        *outlen = noctets + 3;\n        return 0;\n      }\n      if (0xffff < noctets) {\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *outlen = noctets + 4;\n      return 0;\n    }\n  }\n  *outlen = noctets + 2;\n  return 0;\n}" primitive_type (function_declarator "der_length_ia5_string(uchar *octets,ulong noctets,ulong *outlen)" identifier (parameter_list "(uchar *octets,ulong noctets,ulong *outlen)" ( (parameter_declaration "uchar *octets" type_identifier (pointer_declarator "*octets" * identifier)) , (parameter_declaration "ulong noctets" type_identifier identifier) , (parameter_declaration "ulong *outlen" type_identifier (pointer_declarator "*outlen" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (outlen == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (octets == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  pbVar1 = octets + noctets;\n  if (noctets != 0) {\n    uVar2 = (int)pbVar1 - (int)octets & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      octets = octets + 1;\n    }\n    iVar3 = der_ia5_char_encode((uint)*octets);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (octets = octets + 1; octets != pbVar1; octets = octets + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < noctets) {\n      if (noctets < 0x100) {\n        *outlen = noctets + 3;\n        return 0;\n      }\n      if (0xffff < noctets) {\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *outlen = noctets + 4;\n      return 0;\n    }\n  }\n  *outlen = noctets + 2;\n  return 0;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if (outlen == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }" if (parenthesized_expression "(outlen == (ulong *)0x0)" ( (binary_expression "outlen == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }" { comment (expression_statement "crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);" (call_expression "crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e)" identifier (argument_list "("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e)" ( (string_literal ""outlen != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/ia5/der_length_ia5_string.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (octets == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }" if (parenthesized_expression "(octets == (uchar *)0x0)" ( (binary_expression "octets == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }" { comment (expression_statement "crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);" (call_expression "crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f)" identifier (argument_list "("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f)" ( (string_literal ""octets != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/ia5/der_length_ia5_string.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "pbVar1 = octets + noctets;" (assignment_expression "pbVar1 = octets + noctets" identifier = (binary_expression "octets + noctets" identifier + identifier)) ;) (if_statement "if (noctets != 0) {\n    uVar2 = (int)pbVar1 - (int)octets & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      octets = octets + 1;\n    }\n    iVar3 = der_ia5_char_encode((uint)*octets);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (octets = octets + 1; octets != pbVar1; octets = octets + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < noctets) {\n      if (noctets < 0x100) {\n        *outlen = noctets + 3;\n        return 0;\n      }\n      if (0xffff < noctets) {\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *outlen = noctets + 4;\n      return 0;\n    }\n  }" if (parenthesized_expression "(noctets != 0)" ( (binary_expression "noctets != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = (int)pbVar1 - (int)octets & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      octets = octets + 1;\n    }\n    iVar3 = der_ia5_char_encode((uint)*octets);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (octets = octets + 1; octets != pbVar1; octets = octets + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < noctets) {\n      if (noctets < 0x100) {\n        *outlen = noctets + 3;\n        return 0;\n      }\n      if (0xffff < noctets) {\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *outlen = noctets + 4;\n      return 0;\n    }\n  }" { (expression_statement "uVar2 = (int)pbVar1 - (int)octets & 7;" (assignment_expression "uVar2 = (int)pbVar1 - (int)octets & 7" identifier = (binary_expression "(int)pbVar1 - (int)octets & 7" (binary_expression "(int)pbVar1 - (int)octets" (cast_expression "(int)pbVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)octets" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (if_statement "if (uVar2 == 0) goto LAB_00172861;" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00172861;" goto statement_identifier ;)) (if_statement "if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      octets = octets + 1;\n    }" if (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      octets = octets + 1;\n    }" { (if_statement "if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }\n        iVar3 = der_ia5_char_encode((uint)*octets);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        octets = octets + 1;\n      }" { (if_statement "if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }" if (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }\n          iVar3 = der_ia5_char_encode((uint)*octets);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          octets = octets + 1;\n        }" { (if_statement "if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }" if (parenthesized_expression "(uVar2 != 4)" ( (binary_expression "uVar2 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }\n            iVar3 = der_ia5_char_encode((uint)*octets);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            octets = octets + 1;\n          }" { (if_statement "if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }" if (parenthesized_expression "(uVar2 != 5)" ( (binary_expression "uVar2 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }\n              iVar3 = der_ia5_char_encode((uint)*octets);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              octets = octets + 1;\n            }" { (if_statement "if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }" if (parenthesized_expression "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )) (compound_statement "{\n                iVar3 = der_ia5_char_encode((uint)*octets);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                octets = octets + 1;\n              }" { (expression_statement "iVar3 = der_ia5_char_encode((uint)*octets);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)*octets)" identifier = (call_expression "der_ia5_char_encode((uint)*octets)" identifier (argument_list "((uint)*octets)" ( (binary_expression "(uint)*octets" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n                  return 0x10;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  return 0x10;\n                }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "octets = octets + 1;" (assignment_expression "octets = octets + 1" identifier = (binary_expression "octets + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)*octets);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)*octets)" identifier = (call_expression "der_ia5_char_encode((uint)*octets)" identifier (argument_list "((uint)*octets)" ( (binary_expression "(uint)*octets" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n                return 0x10;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                return 0x10;\n              }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "octets = octets + 1;" (assignment_expression "octets = octets + 1" identifier = (binary_expression "octets + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)*octets);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)*octets)" identifier = (call_expression "der_ia5_char_encode((uint)*octets)" identifier (argument_list "((uint)*octets)" ( (binary_expression "(uint)*octets" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n              return 0x10;\n            }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n              return 0x10;\n            }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "octets = octets + 1;" (assignment_expression "octets = octets + 1" identifier = (binary_expression "octets + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)*octets);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)*octets)" identifier = (call_expression "der_ia5_char_encode((uint)*octets)" identifier (argument_list "((uint)*octets)" ( (binary_expression "(uint)*octets" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n            return 0x10;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            return 0x10;\n          }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "octets = octets + 1;" (assignment_expression "octets = octets + 1" identifier = (binary_expression "octets + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)*octets);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)*octets)" identifier = (call_expression "der_ia5_char_encode((uint)*octets)" identifier (argument_list "((uint)*octets)" ( (binary_expression "(uint)*octets" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n          return 0x10;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          return 0x10;\n        }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "octets = octets + 1;" (assignment_expression "octets = octets + 1" identifier = (binary_expression "octets + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)*octets);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)*octets)" identifier = (call_expression "der_ia5_char_encode((uint)*octets)" identifier (argument_list "((uint)*octets)" ( (binary_expression "(uint)*octets" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "octets = octets + 1;" (assignment_expression "octets = octets + 1" identifier = (binary_expression "octets + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)*octets);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)*octets)" identifier = (call_expression "der_ia5_char_encode((uint)*octets)" identifier (argument_list "((uint)*octets)" ( (binary_expression "(uint)*octets" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n      return 0x10;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      return 0x10;\n    }" { (return_statement "return 0x10;" return number_literal ;) })) (for_statement "for (octets = octets + 1; octets != pbVar1; octets = octets + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }" for ( (assignment_expression "octets = octets + 1" identifier = (binary_expression "octets + 1" identifier + number_literal)) ; (binary_expression "octets != pbVar1" identifier != identifier) ; (assignment_expression "octets = octets + 8" identifier = (binary_expression "octets + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00172861:\n      iVar3 = der_ia5_char_encode((uint)*octets);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode((uint)octets[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }" { (labeled_statement "LAB_00172861:\n      iVar3 = der_ia5_char_encode((uint)*octets);" statement_identifier : (expression_statement "iVar3 = der_ia5_char_encode((uint)*octets);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)*octets)" identifier = (call_expression "der_ia5_char_encode((uint)*octets)" identifier (argument_list "((uint)*octets)" ( (binary_expression "(uint)*octets" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))) ;)) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)octets[1]);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)octets[1])" identifier = (call_expression "der_ia5_char_encode((uint)octets[1])" identifier (argument_list "((uint)octets[1])" ( (cast_expression "(uint)octets[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "octets[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)octets[2]);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)octets[2])" identifier = (call_expression "der_ia5_char_encode((uint)octets[2])" identifier (argument_list "((uint)octets[2])" ( (cast_expression "(uint)octets[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "octets[2]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)octets[3]);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)octets[3])" identifier = (call_expression "der_ia5_char_encode((uint)octets[3])" identifier (argument_list "((uint)octets[3])" ( (cast_expression "(uint)octets[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "octets[3]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)octets[4]);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)octets[4])" identifier = (call_expression "der_ia5_char_encode((uint)octets[4])" identifier (argument_list "((uint)octets[4])" ( (cast_expression "(uint)octets[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "octets[4]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)octets[5]);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)octets[5])" identifier = (call_expression "der_ia5_char_encode((uint)octets[5])" identifier (argument_list "((uint)octets[5])" ( (cast_expression "(uint)octets[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "octets[5]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)octets[6]);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)octets[6])" identifier = (call_expression "der_ia5_char_encode((uint)octets[6])" identifier (argument_list "((uint)octets[6])" ( (cast_expression "(uint)octets[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "octets[6]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode((uint)octets[7]);" (assignment_expression "iVar3 = der_ia5_char_encode((uint)octets[7])" identifier = (call_expression "der_ia5_char_encode((uint)octets[7])" identifier (argument_list "((uint)octets[7])" ( (cast_expression "(uint)octets[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "octets[7]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) })) (if_statement "if (0x7f < noctets) {\n      if (noctets < 0x100) {\n        *outlen = noctets + 3;\n        return 0;\n      }\n      if (0xffff < noctets) {\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *outlen = noctets + 4;\n      return 0;\n    }" if (parenthesized_expression "(0x7f < noctets)" ( (binary_expression "0x7f < noctets" number_literal < identifier) )) (compound_statement "{\n      if (noctets < 0x100) {\n        *outlen = noctets + 3;\n        return 0;\n      }\n      if (0xffff < noctets) {\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *outlen = noctets + 4;\n      return 0;\n    }" { (if_statement "if (noctets < 0x100) {\n        *outlen = noctets + 3;\n        return 0;\n      }" if (parenthesized_expression "(noctets < 0x100)" ( (binary_expression "noctets < 0x100" identifier < number_literal) )) (compound_statement "{\n        *outlen = noctets + 3;\n        return 0;\n      }" { (expression_statement "*outlen = noctets + 3;" (assignment_expression "*outlen = noctets + 3" (pointer_expression "*outlen" * identifier) = (binary_expression "noctets + 3" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (0xffff < noctets) {\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }" if (parenthesized_expression "(0xffff < noctets)" ( (binary_expression "0xffff < noctets" number_literal < identifier) )) (compound_statement "{\n        if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }\n        return 0x10;\n      }" { (if_statement "if (noctets < 0x1000000) {\n          *outlen = noctets + 5;\n          return 0;\n        }" if (parenthesized_expression "(noctets < 0x1000000)" ( (binary_expression "noctets < 0x1000000" identifier < number_literal) )) (compound_statement "{\n          *outlen = noctets + 5;\n          return 0;\n        }" { (expression_statement "*outlen = noctets + 5;" (assignment_expression "*outlen = noctets + 5" (pointer_expression "*outlen" * identifier) = (binary_expression "noctets + 5" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "*outlen = noctets + 4;" (assignment_expression "*outlen = noctets + 4" (pointer_expression "*outlen" * identifier) = (binary_expression "noctets + 4" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "*outlen = noctets + 2;" (assignment_expression "*outlen = noctets + 2" (pointer_expression "*outlen" * identifier) = (binary_expression "noctets + 2" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined8 der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (param_3 == (long *)0x0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (param_1 == (undefined1 *)0x0) {\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  puVar1 = param_1 + param_2;\n  if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }\n  *param_3 = param_2 + 2;\n  return 0;\n}\n\n" (function_definition "undefined8 der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (param_3 == (long *)0x0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (param_1 == (undefined1 *)0x0) {\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  puVar1 = param_1 + param_2;\n  if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }\n  *param_3 = param_2 + 2;\n  return 0;\n}" type_identifier (function_declarator "der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)" identifier (parameter_list "(undefined1 *param_1,ulong param_2,long *param_3)" ( (parameter_declaration "undefined1 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (param_3 == (long *)0x0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (param_1 == (undefined1 *)0x0) {\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  puVar1 = param_1 + param_2;\n  if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }\n  *param_3 = param_2 + 2;\n  return 0;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if (param_3 == (long *)0x0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }" { (expression_statement "crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);" (call_expression "crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e)" identifier (argument_list "("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e)" ( (string_literal ""outlen != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/ia5/der_length_ia5_string.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_1 == (undefined1 *)0x0) {\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }" if (parenthesized_expression "(param_1 == (undefined1 *)0x0)" ( (binary_expression "param_1 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }" { (expression_statement "crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);" (call_expression "crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f)" identifier (argument_list "("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f)" ( (string_literal ""octets != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/ia5/der_length_ia5_string.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "puVar1 = param_1 + param_2;" (assignment_expression "puVar1 = param_1 + param_2" identifier = (binary_expression "param_1 + param_2" identifier + identifier)) ;) (if_statement "if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }" { (expression_statement "uVar2 = (int)puVar1 - (int)param_1 & 7;" (assignment_expression "uVar2 = (int)puVar1 - (int)param_1 & 7" identifier = (binary_expression "(int)puVar1 - (int)param_1 & 7" (binary_expression "(int)puVar1 - (int)param_1" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (if_statement "if (uVar2 == 0) goto LAB_00172861;" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00172861;" goto statement_identifier ;)) (if_statement "if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }" if (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }" { (if_statement "if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }" { (if_statement "if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }" if (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }" { (if_statement "if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }" if (parenthesized_expression "(uVar2 != 4)" ( (binary_expression "uVar2 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }" { (if_statement "if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }" if (parenthesized_expression "(uVar2 != 5)" ( (binary_expression "uVar2 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }" { (if_statement "if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }" if (parenthesized_expression "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )) (compound_statement "{\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }" { (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n                  return 0x10;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  return 0x10;\n                }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n                return 0x10;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                return 0x10;\n              }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n              return 0x10;\n            }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n              return 0x10;\n            }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n            return 0x10;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            return 0x10;\n          }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n          return 0x10;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          return 0x10;\n        }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n      return 0x10;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      return 0x10;\n    }" { (return_statement "return 0x10;" return number_literal ;) })) (for_statement "for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }" for ( (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ; (binary_expression "param_1 != puVar1" identifier != identifier) ; (assignment_expression "param_1 = param_1 + 8" identifier = (binary_expression "param_1 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }" { (labeled_statement "LAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);" statement_identifier : (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" identifier = (call_expression "der_ia5_char_encode(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;)) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[1]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[1])" identifier = (call_expression "der_ia5_char_encode(param_1[1])" identifier (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[2]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[2])" identifier = (call_expression "der_ia5_char_encode(param_1[2])" identifier (argument_list "(param_1[2])" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[3]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[3])" identifier = (call_expression "der_ia5_char_encode(param_1[3])" identifier (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[4]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[4])" identifier = (call_expression "der_ia5_char_encode(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[5]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[5])" identifier = (call_expression "der_ia5_char_encode(param_1[5])" identifier (argument_list "(param_1[5])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[6]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[6])" identifier = (call_expression "der_ia5_char_encode(param_1[6])" identifier (argument_list "(param_1[6])" ( (subscript_expression "param_1[6]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "iVar3 = der_ia5_char_encode(param_1[7]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[7])" identifier = (call_expression "der_ia5_char_encode(param_1[7])" identifier (argument_list "(param_1[7])" ( (subscript_expression "param_1[7]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        return 0x10;\n      }" { (return_statement "return 0x10;" return number_literal ;) })) })) (if_statement "if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }" if (parenthesized_expression "(0x7f < param_2)" ( (binary_expression "0x7f < param_2" number_literal < identifier) )) (compound_statement "{\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }" { (if_statement "if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }" if (parenthesized_expression "(param_2 < 0x100)" ( (binary_expression "param_2 < 0x100" identifier < number_literal) )) (compound_statement "{\n        *param_3 = param_2 + 3;\n        return 0;\n      }" { (expression_statement "*param_3 = param_2 + 3;" (assignment_expression "*param_3 = param_2 + 3" (pointer_expression "*param_3" * identifier) = (binary_expression "param_2 + 3" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }" if (parenthesized_expression "(0xffff < param_2)" ( (binary_expression "0xffff < param_2" number_literal < identifier) )) (compound_statement "{\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }" { (if_statement "if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }" if (parenthesized_expression "(param_2 < 0x1000000)" ( (binary_expression "param_2 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n          *param_3 = param_2 + 5;\n          return 0;\n        }" { (expression_statement "*param_3 = param_2 + 5;" (assignment_expression "*param_3 = param_2 + 5" (pointer_expression "*param_3" * identifier) = (binary_expression "param_2 + 5" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "*param_3 = param_2 + 4;" (assignment_expression "*param_3 = param_2 + 4" (pointer_expression "*param_3" * identifier) = (binary_expression "param_2 + 4" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "*param_3 = param_2 + 2;" (assignment_expression "*param_3 = param_2 + 2" (pointer_expression "*param_3" * identifier) = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_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 IDENT != LIT) )) (compound_statement { (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 IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return LIT ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (param_3 == (long *)0x0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (param_1 == (undefined1 *)0x0) {\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  puVar1 = param_1 + param_2;\n  if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }\n  *param_3 = param_2 + 2;\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "der_length_ia5_string(undefined1 *param_1,ulong param_2,long *param_3)" (identifier "der_length_ia5_string") (parameter_list "(undefined1 *param_1,ulong param_2,long *param_3)" (( "(") (parameter_declaration "undefined1 *param_1" (type_identifier "undefined1") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "long *param_3" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  if (param_3 == (long *)0x0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }\n  if (param_1 == (undefined1 *)0x0) {\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }\n  puVar1 = param_1 + param_2;\n  if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }\n  *param_3 = param_2 + 2;\n  return 0;\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (if_statement "if (param_3 == (long *)0x0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);\n  }" ({ "{") (expression_statement "crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);" (call_expression "crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e)" (identifier "crypt_argchk") (argument_list "("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e)" (( "(") (string_literal ""outlen != NULL"" (" """) (string_content "outlen != NULL") (" """)) (, ",") (string_literal ""src/pk/asn1/der/ia5/der_length_ia5_string.c"" (" """) (string_content "src/pk/asn1/der/ia5/der_length_ia5_string.c") (" """)) (, ",") (number_literal "0x9e") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1 == (undefined1 *)0x0) {\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }" (if "if") (parenthesized_expression "(param_1 == (undefined1 *)0x0)" (( "(") (binary_expression "param_1 == (undefined1 *)0x0" (identifier "param_1") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);\n  }" ({ "{") (expression_statement "crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);" (call_expression "crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f)" (identifier "crypt_argchk") (argument_list "("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f)" (( "(") (string_literal ""octets != NULL"" (" """) (string_content "octets != NULL") (" """)) (, ",") (string_literal ""src/pk/asn1/der/ia5/der_length_ia5_string.c"" (" """) (string_content "src/pk/asn1/der/ia5/der_length_ia5_string.c") (" """)) (, ",") (number_literal "0x9f") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = param_1 + param_2;" (assignment_expression "puVar1 = param_1 + param_2" (identifier "puVar1") (= "=") (binary_expression "param_1 + param_2" (identifier "param_1") (+ "+") (identifier "param_2"))) (; ";")) (if_statement "if (param_2 != 0) {\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = (int)puVar1 - (int)param_1 & 7;\n    if (uVar2 == 0) goto LAB_00172861;\n    if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }\n    iVar3 = der_ia5_char_encode(*param_1);\n    if (iVar3 == -1) {\n      return 0x10;\n    }\n    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }\n    if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }\n  }" ({ "{") (expression_statement "uVar2 = (int)puVar1 - (int)param_1 & 7;" (assignment_expression "uVar2 = (int)puVar1 - (int)param_1 & 7" (identifier "uVar2") (= "=") (binary_expression "(int)puVar1 - (int)param_1 & 7" (binary_expression "(int)puVar1 - (int)param_1" (cast_expression "(int)puVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar1")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (uVar2 == 0) goto LAB_00172861;" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00172861;" (goto "goto") (statement_identifier "LAB_00172861") (; ";"))) (if_statement "if (uVar2 != 1) {\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }" (if "if") (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      param_1 = param_1 + 1;\n    }" ({ "{") (if_statement "if (uVar2 != 2) {\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }" (if "if") (parenthesized_expression "(uVar2 != 2)" (( "(") (binary_expression "uVar2 != 2" (identifier "uVar2") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }\n        iVar3 = der_ia5_char_encode(*param_1);\n        if (iVar3 == -1) {\n          return 0x10;\n        }\n        param_1 = param_1 + 1;\n      }" ({ "{") (if_statement "if (uVar2 != 3) {\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }" (if "if") (parenthesized_expression "(uVar2 != 3)" (( "(") (binary_expression "uVar2 != 3" (identifier "uVar2") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n          if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }\n          iVar3 = der_ia5_char_encode(*param_1);\n          if (iVar3 == -1) {\n            return 0x10;\n          }\n          param_1 = param_1 + 1;\n        }" ({ "{") (if_statement "if (uVar2 != 4) {\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }" (if "if") (parenthesized_expression "(uVar2 != 4)" (( "(") (binary_expression "uVar2 != 4" (identifier "uVar2") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n            if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }\n            iVar3 = der_ia5_char_encode(*param_1);\n            if (iVar3 == -1) {\n              return 0x10;\n            }\n            param_1 = param_1 + 1;\n          }" ({ "{") (if_statement "if (uVar2 != 5) {\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }" (if "if") (parenthesized_expression "(uVar2 != 5)" (( "(") (binary_expression "uVar2 != 5" (identifier "uVar2") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n              if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }\n              iVar3 = der_ia5_char_encode(*param_1);\n              if (iVar3 == -1) {\n                return 0x10;\n              }\n              param_1 = param_1 + 1;\n            }" ({ "{") (if_statement "if (uVar2 != 6) {\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }" (if "if") (parenthesized_expression "(uVar2 != 6)" (( "(") (binary_expression "uVar2 != 6" (identifier "uVar2") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                iVar3 = der_ia5_char_encode(*param_1);\n                if (iVar3 == -1) {\n                  return 0x10;\n                }\n                param_1 = param_1 + 1;\n              }" ({ "{") (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(*param_1)" (identifier "der_ia5_char_encode") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n                  return 0x10;\n                }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                  return 0x10;\n                }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(*param_1)" (identifier "der_ia5_char_encode") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n                return 0x10;\n              }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                return 0x10;\n              }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(*param_1)" (identifier "der_ia5_char_encode") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n              return 0x10;\n            }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              return 0x10;\n            }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(*param_1)" (identifier "der_ia5_char_encode") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n            return 0x10;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            return 0x10;\n          }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(*param_1)" (identifier "der_ia5_char_encode") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n          return 0x10;\n        }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          return 0x10;\n        }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(*param_1)" (identifier "der_ia5_char_encode") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(*param_1)" (identifier "der_ia5_char_encode") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n      return 0x10;\n    }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      return 0x10;\n    }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (for_statement "for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }" (for "for") (( "(") (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";") (binary_expression "param_1 != puVar1" (identifier "param_1") (!= "!=") (identifier "puVar1")) (; ";") (assignment_expression "param_1 = param_1 + 8" (identifier "param_1") (= "=") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8"))) () ")") (compound_statement "{\nLAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[1]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[2]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[3]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[4]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[5]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[6]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n      iVar3 = der_ia5_char_encode(param_1[7]);\n      if (iVar3 == -1) {\n        return 0x10;\n      }\n    }" ({ "{") (labeled_statement "LAB_00172861:\n      iVar3 = der_ia5_char_encode(*param_1);" (statement_identifier "LAB_00172861") (: ":") (expression_statement "iVar3 = der_ia5_char_encode(*param_1);" (assignment_expression "iVar3 = der_ia5_char_encode(*param_1)" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(*param_1)" (identifier "der_ia5_char_encode") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";"))) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(param_1[1]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[1])" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(param_1[1])" (identifier "der_ia5_char_encode") (argument_list "(param_1[1])" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(param_1[2]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[2])" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(param_1[2])" (identifier "der_ia5_char_encode") (argument_list "(param_1[2])" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(param_1[3]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[3])" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(param_1[3])" (identifier "der_ia5_char_encode") (argument_list "(param_1[3])" (( "(") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(param_1[4]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[4])" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(param_1[4])" (identifier "der_ia5_char_encode") (argument_list "(param_1[4])" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(param_1[5]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[5])" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(param_1[5])" (identifier "der_ia5_char_encode") (argument_list "(param_1[5])" (( "(") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(param_1[6]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[6])" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(param_1[6])" (identifier "der_ia5_char_encode") (argument_list "(param_1[6])" (( "(") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "iVar3 = der_ia5_char_encode(param_1[7]);" (assignment_expression "iVar3 = der_ia5_char_encode(param_1[7])" (identifier "iVar3") (= "=") (call_expression "der_ia5_char_encode(param_1[7])" (identifier "der_ia5_char_encode") (argument_list "(param_1[7])" (( "(") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        return 0x10;\n      }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (} "}"))) (if_statement "if (0x7f < param_2) {\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }" (if "if") (parenthesized_expression "(0x7f < param_2)" (( "(") (binary_expression "0x7f < param_2" (number_literal "0x7f") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n      if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }\n      if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }\n      *param_3 = param_2 + 4;\n      return 0;\n    }" ({ "{") (if_statement "if (param_2 < 0x100) {\n        *param_3 = param_2 + 3;\n        return 0;\n      }" (if "if") (parenthesized_expression "(param_2 < 0x100)" (( "(") (binary_expression "param_2 < 0x100" (identifier "param_2") (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n        *param_3 = param_2 + 3;\n        return 0;\n      }" ({ "{") (expression_statement "*param_3 = param_2 + 3;" (assignment_expression "*param_3 = param_2 + 3" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (0xffff < param_2) {\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }" (if "if") (parenthesized_expression "(0xffff < param_2)" (( "(") (binary_expression "0xffff < param_2" (number_literal "0xffff") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n        if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }\n        return 0x10;\n      }" ({ "{") (if_statement "if (param_2 < 0x1000000) {\n          *param_3 = param_2 + 5;\n          return 0;\n        }" (if "if") (parenthesized_expression "(param_2 < 0x1000000)" (( "(") (binary_expression "param_2 < 0x1000000" (identifier "param_2") (< "<") (number_literal "0x1000000")) () ")")) (compound_statement "{\n          *param_3 = param_2 + 5;\n          return 0;\n        }" ({ "{") (expression_statement "*param_3 = param_2 + 5;" (assignment_expression "*param_3 = param_2 + 5" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "param_2 + 5" (identifier "param_2") (+ "+") (number_literal "5"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "*param_3 = param_2 + 4;" (assignment_expression "*param_3 = param_2 + 4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "*param_3 = param_2 + 2;" (assignment_expression "*param_3 = param_2 + 2" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

int function_1(type_1 *var_3,type_2 var_4,type_2 *var_1)

{
  type_3 *var_8;
  type_4 var_5;
  int var_7;
  
  if (var_1 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("outlen != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9e);
  }
  if (var_3 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("octets != NULL","src/pk/asn1/der/ia5/der_length_ia5_string.c",0x9f);
  }
  var_8 = var_3 + var_4;
  if (var_4 != 0) {
    var_5 = (int)var_8 - (int)var_3 & 7;
    if (var_5 == 0) goto LAB_00172861;
    if (var_5 != 1) {
      if (var_5 != 2) {
        if (var_5 != 3) {
          if (var_5 != 4) {
            if (var_5 != 5) {
              if (var_5 != 6) {
                var_7 = var_6((type_4)*var_3);
                if (var_7 == -1) {
                  return 0x10;
                }
                var_3 = var_3 + 1;
              }
              var_7 = var_6((type_4)*var_3);
              if (var_7 == -1) {
                return 0x10;
              }
              var_3 = var_3 + 1;
            }
            var_7 = var_6((type_4)*var_3);
            if (var_7 == -1) {
              return 0x10;
            }
            var_3 = var_3 + 1;
          }
          var_7 = var_6((type_4)*var_3);
          if (var_7 == -1) {
            return 0x10;
          }
          var_3 = var_3 + 1;
        }
        var_7 = var_6((type_4)*var_3);
        if (var_7 == -1) {
          return 0x10;
        }
        var_3 = var_3 + 1;
      }
      var_7 = var_6((type_4)*var_3);
      if (var_7 == -1) {
        return 0x10;
      }
      var_3 = var_3 + 1;
    }
    var_7 = var_6((type_4)*var_3);
    if (var_7 == -1) {
      return 0x10;
    }
    for (var_3 = var_3 + 1; var_3 != var_8; var_3 = var_3 + 8) {
LAB_00172861:
      var_7 = var_6((type_4)*var_3);
      if (var_7 == -1) {
        return 0x10;
      }
      var_7 = var_6((type_4)var_3[1]);
      if (var_7 == -1) {
        return 0x10;
      }
      var_7 = var_6((type_4)var_3[2]);
      if (var_7 == -1) {
        return 0x10;
      }
      var_7 = var_6((type_4)var_3[3]);
      if (var_7 == -1) {
        return 0x10;
      }
      var_7 = var_6((type_4)var_3[4]);
      if (var_7 == -1) {
        return 0x10;
      }
      var_7 = var_6((type_4)var_3[5]);
      if (var_7 == -1) {
        return 0x10;
      }
      var_7 = var_6((type_4)var_3[6]);
      if (var_7 == -1) {
        return 0x10;
      }
      var_7 = var_6((type_4)var_3[7]);
      if (var_7 == -1) {
        return 0x10;
      }
    }
    if (0x7f < var_4) {
      if (var_4 < 0x100) {
        *var_1 = var_4 + 3;
        return 0;
      }
      if (0xffff < var_4) {
        if (var_4 < 0x1000000) {
          *var_1 = var_4 + 5;
          return 0;
        }
        return 0x10;
      }
      *var_1 = var_4 + 4;
      return 0;
    }
  }
  *var_1 = var_4 + 2;
  return 0;
}


(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: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (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: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) condition: (binary_expression left: (identifier) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (number_literal)))))

undefined8 MASKED(undefined1 *param_1,ulong param_2,long *param_3)

{
  undefined1 *puVar1;
  uint uVar2;
  int iVar3;
  
  if (param_3 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("outlen != NULL","src/pk/asn1/der/ia5/MASKED.c",0x9e);
  }
  if (param_1 == (undefined1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("octets != NULL","src/pk/asn1/der/ia5/MASKED.c",0x9f);
  }
  puVar1 = param_1 + param_2;
  if (param_2 != 0) {
    uVar2 = (int)puVar1 - (int)param_1 & 7;
    if (uVar2 == 0) goto LAB_00172861;
    if (uVar2 != 1) {
      if (uVar2 != 2) {
        if (uVar2 != 3) {
          if (uVar2 != 4) {
            if (uVar2 != 5) {
              if (uVar2 != 6) {
                iVar3 = der_ia5_char_encode(*param_1);
                if (iVar3 == -1) {
                  return 0x10;
                }
                param_1 = param_1 + 1;
              }
              iVar3 = der_ia5_char_encode(*param_1);
              if (iVar3 == -1) {
                return 0x10;
              }
              param_1 = param_1 + 1;
            }
            iVar3 = der_ia5_char_encode(*param_1);
            if (iVar3 == -1) {
              return 0x10;
            }
            param_1 = param_1 + 1;
          }
          iVar3 = der_ia5_char_encode(*param_1);
          if (iVar3 == -1) {
            return 0x10;
          }
          param_1 = param_1 + 1;
        }
        iVar3 = der_ia5_char_encode(*param_1);
        if (iVar3 == -1) {
          return 0x10;
        }
        param_1 = param_1 + 1;
      }
      iVar3 = der_ia5_char_encode(*param_1);
      if (iVar3 == -1) {
        return 0x10;
      }
      param_1 = param_1 + 1;
    }
    iVar3 = der_ia5_char_encode(*param_1);
    if (iVar3 == -1) {
      return 0x10;
    }
    for (param_1 = param_1 + 1; param_1 != puVar1; param_1 = param_1 + 8) {
LAB_00172861:
      iVar3 = der_ia5_char_encode(*param_1);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[1]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[2]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[3]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[4]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[5]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[6]);
      if (iVar3 == -1) {
        return 0x10;
      }
      iVar3 = der_ia5_char_encode(param_1[7]);
      if (iVar3 == -1) {
        return 0x10;
      }
    }
    if (0x7f < param_2) {
      if (param_2 < 0x100) {
        *param_3 = param_2 + 3;
        return 0;
      }
      if (0xffff < param_2) {
        if (param_2 < 0x1000000) {
          *param_3 = param_2 + 5;
          return 0;
        }
        return 0x10;
      }
      *param_3 = param_2 + 4;
      return 0;
    }
  }
  *param_3 = param_2 + 2;
  return 0;
}

