
/* WARNING: Type propagation algorithm not settling */

int crypt_list_all_constants(char *names_list,uint *names_list_size)

{
  int iVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  char *pcVar7;
  crypt_constant *pcVar8;
  crypt_size *pcVar9;
  char *local_48;
  
  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);
  if (-1 < iVar1) {
    pcVar9 = (crypt_size *)(_crypt_constants + 2);
    pcVar7 = _crypt_constants[1].name;
    uVar4 = _crypt_constants[1].value;
    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2)
    {
      uVar6 = iVar1 + iVar2;
      if (pcVar9 == _crypt_sizes) {
        if (names_list == (char *)0x0) {
          *names_list_size = uVar6;
          return 0;
        }
        if (*names_list_size < uVar6) {
          return -1;
        }
        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);
        if ((int)uVar4 < 0) {
          return -1;
        }
        if (uVar6 < uVar4) {
          return -1;
        }
        uVar6 = uVar6 - uVar4;
        local_48 = names_list + (int)uVar4;
        pcVar8 = _crypt_constants;
        pcVar7 = _crypt_constants[1].name;
        uVar4 = _crypt_constants[1].value;
        while( true ) {
          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);
          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);
          if ((int)uVar4 < 0) {
            return -1;
          }
          if (uVar6 < uVar4) {
            return -1;
          }
          uVar6 = uVar6 - uVar4;
          local_48 = local_48 + (int)uVar4;
          if ((crypt_size *)pcVar8 == _crypt_sizes) {
            local_48[-1] = '\0';
            return 0;
          }
          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,
                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);
          if ((int)uVar5 < 0) break;
          if (uVar6 < uVar5) {
            return -1;
          }
          uVar6 = uVar6 - uVar5;
          uVar4 = ((crypt_size *)pcVar8)[1].size;
          pcVar7 = ((crypt_size *)pcVar8)[1].name;
          local_48 = local_48 + (int)uVar5;
        }
        return -1;
      }
      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);
      if (iVar2 < 0) {
        return -1;
      }
      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);
      if (iVar3 < 0) {
        return -1;
      }
      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);
      if (iVar1 < 0) {
        return -1;
      }
      uVar4 = pcVar9[3].size;
      pcVar7 = pcVar9[3].name;
      iVar1 = uVar6 + iVar2 + iVar3 + iVar1;
      pcVar9 = pcVar9 + 4;
    }
  }
  return -1;
}



undefined8 crypt_list_all_constants(long param_1,uint *param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined *puVar7;
  undefined **ppuVar8;
  long local_48;
  
  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);
  if (-1 < iVar1) {
    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;
    puVar7 = PTR_s_CRYPT_ERROR_001d8550;
    uVar6 = DAT_001d8558;
    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)
    {
      uVar5 = iVar1 + iVar2;
      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {
        if (param_1 == 0) {
          *param_2 = uVar5;
          return 0;
        }
        if (*param_2 < uVar5) {
          return 0xffffffff;
        }
        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);
        if ((int)uVar4 < 0) {
          return 0xffffffff;
        }
        if (uVar5 < uVar4) {
          return 0xffffffff;
        }
        uVar5 = uVar5 - uVar4;
        local_48 = param_1 + (int)uVar4;
        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;
        puVar7 = PTR_s_CRYPT_ERROR_001d8550;
        uVar6 = DAT_001d8558;
        while( true ) {
          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);
          if ((int)uVar4 < 0) {
            return 0xffffffff;
          }
          if (uVar5 < uVar4) {
            return 0xffffffff;
          }
          uVar5 = uVar5 - uVar4;
          local_48 = local_48 + (int)uVar4;
          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {
            *(undefined1 *)(local_48 + -1) = 0;
            return 0;
          }
          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,
                                 *(undefined4 *)(ppuVar8 + 1));
          if ((int)uVar4 < 0) break;
          if (uVar5 < uVar4) {
            return 0xffffffff;
          }
          uVar5 = uVar5 - uVar4;
          uVar6 = *(undefined4 *)(ppuVar8 + 3);
          puVar7 = ppuVar8[2];
          local_48 = (int)uVar4 + local_48;
          ppuVar8 = ppuVar8 + 4;
        }
        return 0xffffffff;
      }
      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,
                             *(undefined4 *)(ppuVar8 + 1));
      if (iVar2 < 0) {
        return 0xffffffff;
      }
      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],
                             *(undefined4 *)(ppuVar8 + 3));
      if (iVar3 < 0) {
        return 0xffffffff;
      }
      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],
                             *(undefined4 *)(ppuVar8 + 5));
      if (iVar1 < 0) {
        return 0xffffffff;
      }
      uVar6 = *(undefined4 *)(ppuVar8 + 7);
      puVar7 = ppuVar8[6];
      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;
      ppuVar8 = ppuVar8 + 8;
    }
  }
  return 0xffffffff;
}


PUSH R15
LEA R9,[0x1be9e7]
MOV EDX,0x1
XOR EAX,EAX
PUSH R14
MOV RCX,-0x1
PUSH R13
PUSH R12
PUSH RBP
LEA RBP,[0x1be9f0]
PUSH RBX
MOV R8,RBP
SUB RSP,0x20
MOV qword ptr [RSP + 0x8],RDI
XOR EDI,EDI
MOV qword ptr [RSP + 0x10],RSI
XOR ESI,ESI
PUSH 0x0
CALL 0x00113100
POP R9
POP R10
TEST EAX,EAX
JS 0x00163d50
LEA R14,[0x1d8550]
MOV R10D,dword ptr [0x001d8558]
MOV EBX,EAX
LEA R15,[0x1d8560]
MOV R9,qword ptr [R14]
LEA R12,[R14 + 0x5d0]
SUB RSP,0x8
MOV R8,RBP
XOR EDI,EDI
MOV RCX,-0x1
PUSH R10
MOV EDX,0x1
XOR ESI,ESI
XOR EAX,EAX
CALL 0x00113100
POP RDI
POP R8
TEST EAX,EAX
JS 0x00163d50
ADD EBX,EAX
CMP R15,R12
JZ 0x00163c24
MOV ESI,dword ptr [R15 + 0x8]
SUB RSP,0x8
MOV R9,qword ptr [R15]
MOV R8,RBP
MOV RCX,-0x1
MOV EDX,0x1
XOR EDI,EDI
XOR EAX,EAX
PUSH RSI
XOR ESI,ESI
LEA R13,[R15 + 0x10]
CALL 0x00113100
POP RCX
POP RSI
TEST EAX,EAX
JS 0x00163d50
MOV R8D,dword ptr [R13 + 0x8]
SUB RSP,0x8
MOV R9,qword ptr [R15 + 0x10]
XOR ESI,ESI
XOR EDI,EDI
ADD EBX,EAX
MOV RCX,-0x1
MOV EDX,0x1
PUSH R8
XOR EAX,EAX
MOV R8,RBP
CALL 0x00113100
POP RSI
POP RDI
TEST EAX,EAX
JS 0x00163d50
MOV R9D,dword ptr [R15 + 0x28]
SUB RSP,0x8
MOV EDX,0x1
ADD EBX,EAX
MOV RCX,-0x1
MOV R8,RBP
XOR ESI,ESI
XOR EDI,EDI
PUSH R9
MOV R9,qword ptr [R15 + 0x20]
XOR EAX,EAX
CALL 0x00113100
POP RDX
POP RCX
TEST EAX,EAX
JS 0x00163d50
MOV R10D,dword ptr [R15 + 0x38]
MOV R9,qword ptr [R15 + 0x30]
ADD EBX,EAX
ADD R15,0x40
JMP 0x00163b3f
CMP qword ptr [RSP],0x0
MOV RAX,qword ptr [RSP + 0x8]
JZ 0x00163d64
CMP dword ptr [RAX],EBX
JC 0x00163d50
MOV RDX,R15
XOR EDI,EDI
LEA R9,[0x1be9e7]
SUB RDX,R14
LEA RBP,[0x1be9f0]
AND EDX,0x10
JZ 0x00163d16
SUB RSP,0x8
MOV R8,RBP
MOV ESI,EBX
MOV RCX,-0x1
PUSH 0x0
MOV R13,qword ptr [RSP + 0x10]
MOV EDX,0x1
XOR EAX,EAX
MOV RDI,R13
CALL 0x00113100
POP R8
POP R9
TEST EAX,EAX
JS 0x00163d50
CMP EAX,EBX
JA 0x00163d50
SUB EBX,EAX
CDQE
MOV R9,qword ptr [R14]
MOV EDI,dword ptr [0x001d8558]
ADD R13,RAX
ADD R14,0x10
MOV qword ptr [RSP],R13
JMP 0x00163d16
CMP EAX,EBX
JA 0x00163d50
SUB EBX,EAX
CDQE
ADD R12,RAX
CMP R14,R15
JZ 0x00163d6a
MOV ECX,dword ptr [R14 + 0x8]
SUB RSP,0x8
MOV R9,qword ptr [R14]
MOV ESI,EBX
MOV R8,RBP
MOV EDX,0x1
MOV RDI,R12
XOR EAX,EAX
PUSH RCX
MOV RCX,-0x1
LEA R13,[R14 + 0x10]
CALL 0x00113100
POP R10
POP R11
TEST EAX,EAX
JS 0x00163d50
CMP EAX,EBX
JA 0x00163d50
SUB EBX,EAX
CDQE
MOV EDI,dword ptr [R13 + 0x8]
MOV R9,qword ptr [R13]
ADD RAX,R12
ADD R14,0x20
MOV qword ptr [RSP],RAX
SUB RSP,0x8
MOV EDX,0x1
MOV ESI,EBX
MOV R8,RBP
PUSH RDI
MOV R12,qword ptr [RSP + 0x10]
MOV RCX,-0x1
XOR EAX,EAX
MOV RDI,R12
CALL 0x00113100
POP R13
POP RDX
TEST EAX,EAX
JNS 0x00163cb0
NOP word ptr CS:[RAX + RAX*0x1]
MOV EAX,0xffffffff
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV dword ptr [RAX],EBX
XOR EAX,EAX
JMP 0x00163d55
MOV byte ptr [R12 + -0x1],0x0
XOR EAX,EAX
JMP 0x00163d55
(translation_unit "undefined8 crypt_list_all_constants(long param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined **ppuVar8;\n  long local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }\n  return 0xffffffff;\n}\n\n" (function_definition "undefined8 crypt_list_all_constants(long param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined **ppuVar8;\n  long local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }\n  return 0xffffffff;\n}" type_identifier (function_declarator "crypt_list_all_constants(long param_1,uint *param_2)" identifier (parameter_list "(long param_1,uint *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined **ppuVar8;\n  long local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }\n  return 0xffffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (expression_statement "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);" (assignment_expression "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (string_literal ""CRYPT_OK"" " string_content ") , number_literal )))) ;) (if_statement "if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }" { (expression_statement "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;" (assignment_expression "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560" identifier = (pointer_expression "&PTR_s_CRYPT_NOP_001d8560" & identifier)) ;) (expression_statement "puVar7 = PTR_s_CRYPT_ERROR_001d8550;" (assignment_expression "puVar7 = PTR_s_CRYPT_ERROR_001d8550" identifier = identifier) ;) (expression_statement "uVar6 = DAT_001d8558;" (assignment_expression "uVar6 = DAT_001d8558" identifier = identifier) ;) (while_statement "while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }" while (parenthesized_expression "(iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)" ( (comma_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2" (assignment_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , identifier , identifier )))) , (binary_expression "-1 < iVar2" number_literal < identifier)) )) (compound_statement "{\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }" { (expression_statement "uVar5 = iVar1 + iVar2;" (assignment_expression "uVar5 = iVar1 + iVar2" identifier = (binary_expression "iVar1 + iVar2" identifier + identifier)) ;) (if_statement "if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }" if (parenthesized_expression "(ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20)" ( (binary_expression "ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20" identifier == (pointer_expression "&PTR_s_ltc_hash_descriptor_001d8b20" & identifier)) )) (compound_statement "{\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }" { (if_statement "if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n          *param_2 = uVar5;\n          return 0;\n        }" { (expression_statement "*param_2 = uVar5;" (assignment_expression "*param_2 = uVar5" (pointer_expression "*param_2" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }" if (parenthesized_expression "(*param_2 < uVar5)" ( (binary_expression "*param_2 < uVar5" (pointer_expression "*param_2" * identifier) < identifier) )) (compound_statement "{\n          return 0xffffffff;\n        }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);" (assignment_expression "uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier = (call_expression "__snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier (argument_list "(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (string_literal ""CRYPT_OK"" " string_content ") , number_literal )))) ;) (if_statement "if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          return 0xffffffff;\n        }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (if_statement "if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n          return 0xffffffff;\n        }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" identifier = (binary_expression "uVar5 - uVar4" identifier - identifier)) ;) (expression_statement "local_48 = param_1 + (int)uVar4;" (assignment_expression "local_48 = param_1 + (int)uVar4" identifier = (binary_expression "param_1 + (int)uVar4" identifier + (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;" (assignment_expression "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560" identifier = (pointer_expression "&PTR_s_CRYPT_NOP_001d8560" & identifier)) ;) (expression_statement "puVar7 = PTR_s_CRYPT_ERROR_001d8550;" (assignment_expression "puVar7 = PTR_s_CRYPT_ERROR_001d8550" identifier = identifier) ;) (expression_statement "uVar6 = DAT_001d8558;" (assignment_expression "uVar6 = DAT_001d8558" identifier = identifier) ;) (while_statement "while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }" { (expression_statement "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);" (assignment_expression "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" identifier = (call_expression "__snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" identifier (argument_list "(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            return 0xffffffff;\n          }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (if_statement "if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n            return 0xffffffff;\n          }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" identifier = (binary_expression "uVar5 - uVar4" identifier - identifier)) ;) (expression_statement "local_48 = local_48 + (int)uVar4;" (assignment_expression "local_48 = local_48 + (int)uVar4" identifier = (binary_expression "local_48 + (int)uVar4" identifier + (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }" if (parenthesized_expression "(ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20)" ( (binary_expression "ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20" identifier == (pointer_expression "&PTR_s_ltc_hash_descriptor_001d8b20" & identifier)) )) (compound_statement "{\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }" { (expression_statement "*(undefined1 *)(local_48 + -1) = 0;" (assignment_expression "*(undefined1 *)(local_48 + -1) = 0" (pointer_expression "*(undefined1 *)(local_48 + -1)" * (cast_expression "(undefined1 *)(local_48 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + -1)" ( (binary_expression "local_48 + -1" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));" (assignment_expression "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" identifier = (call_expression "__snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" identifier (argument_list "(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (pointer_expression "*ppuVar8" * identifier) , (pointer_expression "*(undefined4 *)(ppuVar8 + 1)" * (cast_expression "(undefined4 *)(ppuVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 1)" ( (binary_expression "ppuVar8 + 1" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)uVar4 < 0) break;" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n            return 0xffffffff;\n          }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" identifier = (binary_expression "uVar5 - uVar4" identifier - identifier)) ;) (expression_statement "uVar6 = *(undefined4 *)(ppuVar8 + 3);" (assignment_expression "uVar6 = *(undefined4 *)(ppuVar8 + 3)" identifier = (pointer_expression "*(undefined4 *)(ppuVar8 + 3)" * (cast_expression "(undefined4 *)(ppuVar8 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 3)" ( (binary_expression "ppuVar8 + 3" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = ppuVar8[2];" (assignment_expression "puVar7 = ppuVar8[2]" identifier = (subscript_expression "ppuVar8[2]" identifier [ number_literal ])) ;) (expression_statement "local_48 = (int)uVar4 + local_48;" (assignment_expression "local_48 = (int)uVar4 + local_48" identifier = (binary_expression "(int)uVar4 + local_48" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "ppuVar8 = ppuVar8 + 4;" (assignment_expression "ppuVar8 = ppuVar8 + 4" identifier = (binary_expression "ppuVar8 + 4" identifier + number_literal)) ;) })) (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));" (assignment_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (pointer_expression "*ppuVar8" * identifier) , (pointer_expression "*(undefined4 *)(ppuVar8 + 1)" * (cast_expression "(undefined4 *)(ppuVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 1)" ( (binary_expression "ppuVar8 + 1" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 < 0) {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));" (assignment_expression "iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (subscript_expression "ppuVar8[2]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(ppuVar8 + 3)" * (cast_expression "(undefined4 *)(ppuVar8 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 3)" ( (binary_expression "ppuVar8 + 3" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar3 < 0) {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));" (assignment_expression "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (subscript_expression "ppuVar8[4]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(ppuVar8 + 5)" * (cast_expression "(undefined4 *)(ppuVar8 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 5)" ( (binary_expression "ppuVar8 + 5" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 < 0) {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar6 = *(undefined4 *)(ppuVar8 + 7);" (assignment_expression "uVar6 = *(undefined4 *)(ppuVar8 + 7)" identifier = (pointer_expression "*(undefined4 *)(ppuVar8 + 7)" * (cast_expression "(undefined4 *)(ppuVar8 + 7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 7)" ( (binary_expression "ppuVar8 + 7" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = ppuVar8[6];" (assignment_expression "puVar7 = ppuVar8[6]" identifier = (subscript_expression "ppuVar8[6]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = uVar5 + iVar2 + iVar3 + iVar1;" (assignment_expression "iVar1 = uVar5 + iVar2 + iVar3 + iVar1" identifier = (binary_expression "uVar5 + iVar2 + iVar3 + iVar1" (binary_expression "uVar5 + iVar2 + iVar3" (binary_expression "uVar5 + iVar2" identifier + identifier) + identifier) + identifier)) ;) (expression_statement "ppuVar8 = ppuVar8 + 8;" (assignment_expression "ppuVar8 = ppuVar8 + 8" identifier = (binary_expression "ppuVar8 + 8" identifier + number_literal)) ;) })) })) (return_statement "return 0xffffffff;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint crypt_list_all_constants(char *names_list,uint *names_list_size)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  char *pcVar7;\n  crypt_constant *pcVar8;\n  crypt_size *pcVar9;\n  char *local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    pcVar9 = (crypt_size *)(_crypt_constants + 2);\n    pcVar7 = _crypt_constants[1].name;\n    uVar4 = _crypt_constants[1].value;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2)\n    {\n      uVar6 = iVar1 + iVar2;\n      if (pcVar9 == _crypt_sizes) {\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);\n      if (iVar2 < 0) {\n        return -1;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);\n      if (iVar3 < 0) {\n        return -1;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);\n      if (iVar1 < 0) {\n        return -1;\n      }\n      uVar4 = pcVar9[3].size;\n      pcVar7 = pcVar9[3].name;\n      iVar1 = uVar6 + iVar2 + iVar3 + iVar1;\n      pcVar9 = pcVar9 + 4;\n    }\n  }\n  return -1;\n}\n\n" comment (function_definition "int crypt_list_all_constants(char *names_list,uint *names_list_size)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  char *pcVar7;\n  crypt_constant *pcVar8;\n  crypt_size *pcVar9;\n  char *local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    pcVar9 = (crypt_size *)(_crypt_constants + 2);\n    pcVar7 = _crypt_constants[1].name;\n    uVar4 = _crypt_constants[1].value;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2)\n    {\n      uVar6 = iVar1 + iVar2;\n      if (pcVar9 == _crypt_sizes) {\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);\n      if (iVar2 < 0) {\n        return -1;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);\n      if (iVar3 < 0) {\n        return -1;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);\n      if (iVar1 < 0) {\n        return -1;\n      }\n      uVar4 = pcVar9[3].size;\n      pcVar7 = pcVar9[3].name;\n      iVar1 = uVar6 + iVar2 + iVar3 + iVar1;\n      pcVar9 = pcVar9 + 4;\n    }\n  }\n  return -1;\n}" primitive_type (function_declarator "crypt_list_all_constants(char *names_list,uint *names_list_size)" identifier (parameter_list "(char *names_list,uint *names_list_size)" ( (parameter_declaration "char *names_list" primitive_type (pointer_declarator "*names_list" * identifier)) , (parameter_declaration "uint *names_list_size" type_identifier (pointer_declarator "*names_list_size" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  char *pcVar7;\n  crypt_constant *pcVar8;\n  crypt_size *pcVar9;\n  char *local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    pcVar9 = (crypt_size *)(_crypt_constants + 2);\n    pcVar7 = _crypt_constants[1].name;\n    uVar4 = _crypt_constants[1].value;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2)\n    {\n      uVar6 = iVar1 + iVar2;\n      if (pcVar9 == _crypt_sizes) {\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);\n      if (iVar2 < 0) {\n        return -1;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);\n      if (iVar3 < 0) {\n        return -1;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);\n      if (iVar1 < 0) {\n        return -1;\n      }\n      uVar4 = pcVar9[3].size;\n      pcVar7 = pcVar9[3].name;\n      iVar1 = uVar6 + iVar2 + iVar3 + iVar1;\n      pcVar9 = pcVar9 + 4;\n    }\n  }\n  return -1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "crypt_constant *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "crypt_size *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (expression_statement "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);" (assignment_expression "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (string_literal ""CRYPT_OK"" " string_content ") , number_literal )))) ;) (if_statement "if (-1 < iVar1) {\n    pcVar9 = (crypt_size *)(_crypt_constants + 2);\n    pcVar7 = _crypt_constants[1].name;\n    uVar4 = _crypt_constants[1].value;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2)\n    {\n      uVar6 = iVar1 + iVar2;\n      if (pcVar9 == _crypt_sizes) {\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);\n      if (iVar2 < 0) {\n        return -1;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);\n      if (iVar3 < 0) {\n        return -1;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);\n      if (iVar1 < 0) {\n        return -1;\n      }\n      uVar4 = pcVar9[3].size;\n      pcVar7 = pcVar9[3].name;\n      iVar1 = uVar6 + iVar2 + iVar3 + iVar1;\n      pcVar9 = pcVar9 + 4;\n    }\n  }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n    pcVar9 = (crypt_size *)(_crypt_constants + 2);\n    pcVar7 = _crypt_constants[1].name;\n    uVar4 = _crypt_constants[1].value;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2)\n    {\n      uVar6 = iVar1 + iVar2;\n      if (pcVar9 == _crypt_sizes) {\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);\n      if (iVar2 < 0) {\n        return -1;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);\n      if (iVar3 < 0) {\n        return -1;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);\n      if (iVar1 < 0) {\n        return -1;\n      }\n      uVar4 = pcVar9[3].size;\n      pcVar7 = pcVar9[3].name;\n      iVar1 = uVar6 + iVar2 + iVar3 + iVar1;\n      pcVar9 = pcVar9 + 4;\n    }\n  }" { (expression_statement "pcVar9 = (crypt_size *)(_crypt_constants + 2);" (assignment_expression "pcVar9 = (crypt_size *)(_crypt_constants + 2)" identifier = (cast_expression "(crypt_size *)(_crypt_constants + 2)" ( (type_descriptor "crypt_size *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_crypt_constants + 2)" ( (binary_expression "_crypt_constants + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = _crypt_constants[1].name;" (assignment_expression "pcVar7 = _crypt_constants[1].name" identifier = (field_expression "_crypt_constants[1].name" (subscript_expression "_crypt_constants[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar4 = _crypt_constants[1].value;" (assignment_expression "uVar4 = _crypt_constants[1].value" identifier = (field_expression "_crypt_constants[1].value" (subscript_expression "_crypt_constants[1]" identifier [ number_literal ]) . field_identifier)) ;) (while_statement "while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2)\n    {\n      uVar6 = iVar1 + iVar2;\n      if (pcVar9 == _crypt_sizes) {\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);\n      if (iVar2 < 0) {\n        return -1;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);\n      if (iVar3 < 0) {\n        return -1;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);\n      if (iVar1 < 0) {\n        return -1;\n      }\n      uVar4 = pcVar9[3].size;\n      pcVar7 = pcVar9[3].name;\n      iVar1 = uVar6 + iVar2 + iVar3 + iVar1;\n      pcVar9 = pcVar9 + 4;\n    }" while (parenthesized_expression "(iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2)" ( (comma_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4), -1 < iVar2" (assignment_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , identifier , identifier )))) , (binary_expression "-1 < iVar2" number_literal < identifier)) )) (compound_statement "{\n      uVar6 = iVar1 + iVar2;\n      if (pcVar9 == _crypt_sizes) {\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);\n      if (iVar2 < 0) {\n        return -1;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);\n      if (iVar3 < 0) {\n        return -1;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);\n      if (iVar1 < 0) {\n        return -1;\n      }\n      uVar4 = pcVar9[3].size;\n      pcVar7 = pcVar9[3].name;\n      iVar1 = uVar6 + iVar2 + iVar3 + iVar1;\n      pcVar9 = pcVar9 + 4;\n    }" { (expression_statement "uVar6 = iVar1 + iVar2;" (assignment_expression "uVar6 = iVar1 + iVar2" identifier = (binary_expression "iVar1 + iVar2" identifier + identifier)) ;) (if_statement "if (pcVar9 == _crypt_sizes) {\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }" if (parenthesized_expression "(pcVar9 == _crypt_sizes)" ( (binary_expression "pcVar9 == _crypt_sizes" identifier == identifier) )) (compound_statement "{\n        if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }\n        if (*names_list_size < uVar6) {\n          return -1;\n        }\n        uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return -1;\n        }\n        if (uVar6 < uVar4) {\n          return -1;\n        }\n        uVar6 = uVar6 - uVar4;\n        local_48 = names_list + (int)uVar4;\n        pcVar8 = _crypt_constants;\n        pcVar7 = _crypt_constants[1].name;\n        uVar4 = _crypt_constants[1].value;\n        while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }\n        return -1;\n      }" { (if_statement "if (names_list == (char *)0x0) {\n          *names_list_size = uVar6;\n          return 0;\n        }" if (parenthesized_expression "(names_list == (char *)0x0)" ( (binary_expression "names_list == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *names_list_size = uVar6;\n          return 0;\n        }" { (expression_statement "*names_list_size = uVar6;" (assignment_expression "*names_list_size = uVar6" (pointer_expression "*names_list_size" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*names_list_size < uVar6) {\n          return -1;\n        }" if (parenthesized_expression "(*names_list_size < uVar6)" ( (binary_expression "*names_list_size < uVar6" (pointer_expression "*names_list_size" * identifier) < identifier) )) (compound_statement "{\n          return -1;\n        }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);" (assignment_expression "uVar4 = __snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier = (call_expression "__snprintf_chk(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier (argument_list "(names_list,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (string_literal ""CRYPT_OK"" " string_content ") , number_literal )))) ;) (if_statement "if ((int)uVar4 < 0) {\n          return -1;\n        }" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          return -1;\n        }" { (return_statement "return -1;" return number_literal ;) })) (if_statement "if (uVar6 < uVar4) {\n          return -1;\n        }" if (parenthesized_expression "(uVar6 < uVar4)" ( (binary_expression "uVar6 < uVar4" identifier < identifier) )) (compound_statement "{\n          return -1;\n        }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "uVar6 = uVar6 - uVar4;" (assignment_expression "uVar6 = uVar6 - uVar4" identifier = (binary_expression "uVar6 - uVar4" identifier - identifier)) ;) (expression_statement "local_48 = names_list + (int)uVar4;" (assignment_expression "local_48 = names_list + (int)uVar4" identifier = (binary_expression "names_list + (int)uVar4" identifier + (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar8 = _crypt_constants;" (assignment_expression "pcVar8 = _crypt_constants" identifier = identifier) ;) (expression_statement "pcVar7 = _crypt_constants[1].name;" (assignment_expression "pcVar7 = _crypt_constants[1].name" identifier = (field_expression "_crypt_constants[1].name" (subscript_expression "_crypt_constants[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar4 = _crypt_constants[1].value;" (assignment_expression "uVar4 = _crypt_constants[1].value" identifier = (field_expression "_crypt_constants[1].value" (subscript_expression "_crypt_constants[1]" identifier [ number_literal ]) . field_identifier)) ;) (while_statement "while( true ) {\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);\n          uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);\n          if ((int)uVar4 < 0) {\n            return -1;\n          }\n          if (uVar6 < uVar4) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }\n          uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);\n          if ((int)uVar5 < 0) break;\n          if (uVar6 < uVar5) {\n            return -1;\n          }\n          uVar6 = uVar6 - uVar5;\n          uVar4 = ((crypt_size *)pcVar8)[1].size;\n          pcVar7 = ((crypt_size *)pcVar8)[1].name;\n          local_48 = local_48 + (int)uVar5;\n        }" { (expression_statement "pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2);" (assignment_expression "pcVar8 = (crypt_constant *)((crypt_size *)pcVar8 + 2)" identifier = (cast_expression "(crypt_constant *)((crypt_size *)pcVar8 + 2)" ( (type_descriptor "crypt_constant *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((crypt_size *)pcVar8 + 2)" ( (binary_expression "(crypt_size *)pcVar8 + 2" (cast_expression "(crypt_size *)pcVar8" ( (type_descriptor "crypt_size *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4);" (assignment_expression "uVar4 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4)" identifier = (call_expression "__snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4)" identifier (argument_list "(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,uVar4)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 < 0) {\n            return -1;\n          }" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            return -1;\n          }" { (return_statement "return -1;" return number_literal ;) })) (if_statement "if (uVar6 < uVar4) {\n            return -1;\n          }" if (parenthesized_expression "(uVar6 < uVar4)" ( (binary_expression "uVar6 < uVar4" identifier < identifier) )) (compound_statement "{\n            return -1;\n          }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "uVar6 = uVar6 - uVar4;" (assignment_expression "uVar6 = uVar6 - uVar4" identifier = (binary_expression "uVar6 - uVar4" identifier - identifier)) ;) (expression_statement "local_48 = local_48 + (int)uVar4;" (assignment_expression "local_48 = local_48 + (int)uVar4" identifier = (binary_expression "local_48 + (int)uVar4" identifier + (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((crypt_size *)pcVar8 == _crypt_sizes) {\n            local_48[-1] = '\0';\n            return 0;\n          }" if (parenthesized_expression "((crypt_size *)pcVar8 == _crypt_sizes)" ( (binary_expression "(crypt_size *)pcVar8 == _crypt_sizes" (cast_expression "(crypt_size *)pcVar8" ( (type_descriptor "crypt_size *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n            local_48[-1] = '\0';\n            return 0;\n          }" { (expression_statement "local_48[-1] = '\0';" (assignment_expression "local_48[-1] = '\0'" (subscript_expression "local_48[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size);" (assignment_expression "uVar5 = __snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size)" identifier = (call_expression "__snprintf_chk(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size)" identifier (argument_list "(local_48,uVar6,1,0xffffffffffffffff,&DAT_001be9f0,\n                                 ((crypt_size *)pcVar8)->name,((crypt_size *)pcVar8)->size)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (field_expression "((crypt_size *)pcVar8)->name" (parenthesized_expression "((crypt_size *)pcVar8)" ( (cast_expression "(crypt_size *)pcVar8" ( (type_descriptor "crypt_size *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) , (field_expression "((crypt_size *)pcVar8)->size" (parenthesized_expression "((crypt_size *)pcVar8)" ( (cast_expression "(crypt_size *)pcVar8" ( (type_descriptor "crypt_size *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )))) ;) (if_statement "if ((int)uVar5 < 0) break;" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar6 < uVar5) {\n            return -1;\n          }" if (parenthesized_expression "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) )) (compound_statement "{\n            return -1;\n          }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "uVar6 = uVar6 - uVar5;" (assignment_expression "uVar6 = uVar6 - uVar5" identifier = (binary_expression "uVar6 - uVar5" identifier - identifier)) ;) (expression_statement "uVar4 = ((crypt_size *)pcVar8)[1].size;" (assignment_expression "uVar4 = ((crypt_size *)pcVar8)[1].size" identifier = (field_expression "((crypt_size *)pcVar8)[1].size" (subscript_expression "((crypt_size *)pcVar8)[1]" (parenthesized_expression "((crypt_size *)pcVar8)" ( (cast_expression "(crypt_size *)pcVar8" ( (type_descriptor "crypt_size *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) . field_identifier)) ;) (expression_statement "pcVar7 = ((crypt_size *)pcVar8)[1].name;" (assignment_expression "pcVar7 = ((crypt_size *)pcVar8)[1].name" identifier = (field_expression "((crypt_size *)pcVar8)[1].name" (subscript_expression "((crypt_size *)pcVar8)[1]" (parenthesized_expression "((crypt_size *)pcVar8)" ( (cast_expression "(crypt_size *)pcVar8" ( (type_descriptor "crypt_size *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) . field_identifier)) ;) (expression_statement "local_48 = local_48 + (int)uVar5;" (assignment_expression "local_48 = local_48 + (int)uVar5" identifier = (binary_expression "local_48 + (int)uVar5" identifier + (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (return_statement "return -1;" return number_literal ;) })) (expression_statement "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size);" (assignment_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9->name,pcVar9->size)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (field_expression "pcVar9->name" identifier -> field_identifier) , (field_expression "pcVar9->size" identifier -> field_identifier) )))) ;) (if_statement "if (iVar2 < 0) {\n        return -1;\n      }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n        return -1;\n      }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size);" (assignment_expression "iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[1].name,pcVar9[1].size)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (field_expression "pcVar9[1].name" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) . field_identifier) , (field_expression "pcVar9[1].size" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) . field_identifier) )))) ;) (if_statement "if (iVar3 < 0) {\n        return -1;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        return -1;\n      }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size);" (assignment_expression "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar9[2].name,pcVar9[2].size)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (field_expression "pcVar9[2].name" (subscript_expression "pcVar9[2]" identifier [ number_literal ]) . field_identifier) , (field_expression "pcVar9[2].size" (subscript_expression "pcVar9[2]" identifier [ number_literal ]) . field_identifier) )))) ;) (if_statement "if (iVar1 < 0) {\n        return -1;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        return -1;\n      }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "uVar4 = pcVar9[3].size;" (assignment_expression "uVar4 = pcVar9[3].size" identifier = (field_expression "pcVar9[3].size" (subscript_expression "pcVar9[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pcVar7 = pcVar9[3].name;" (assignment_expression "pcVar7 = pcVar9[3].name" identifier = (field_expression "pcVar9[3].name" (subscript_expression "pcVar9[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar1 = uVar6 + iVar2 + iVar3 + iVar1;" (assignment_expression "iVar1 = uVar6 + iVar2 + iVar3 + iVar1" identifier = (binary_expression "uVar6 + iVar2 + iVar3 + iVar1" (binary_expression "uVar6 + iVar2 + iVar3" (binary_expression "uVar6 + iVar2" identifier + identifier) + identifier) + identifier)) ;) (expression_statement "pcVar9 = pcVar9 + 4;" (assignment_expression "pcVar9 = pcVar9 + 4" identifier = (binary_expression "pcVar9 + 4" identifier + number_literal)) ;) })) })) (return_statement "return -1;" return number_literal ;) })))
(translation_unit "undefined8 crypt_list_all_constants(long param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined **ppuVar8;\n  long local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }\n  return 0xffffffff;\n}\n\n" (function_definition "undefined8 crypt_list_all_constants(long param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined **ppuVar8;\n  long local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }\n  return 0xffffffff;\n}" type_identifier (function_declarator "crypt_list_all_constants(long param_1,uint *param_2)" identifier (parameter_list "(long param_1,uint *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined **ppuVar8;\n  long local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }\n  return 0xffffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (expression_statement "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);" (assignment_expression "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (string_literal ""CRYPT_OK"" " string_content ") , number_literal )))) ;) (if_statement "if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }" { (expression_statement "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;" (assignment_expression "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560" identifier = (pointer_expression "&PTR_s_CRYPT_NOP_001d8560" & identifier)) ;) (expression_statement "puVar7 = PTR_s_CRYPT_ERROR_001d8550;" (assignment_expression "puVar7 = PTR_s_CRYPT_ERROR_001d8550" identifier = identifier) ;) (expression_statement "uVar6 = DAT_001d8558;" (assignment_expression "uVar6 = DAT_001d8558" identifier = identifier) ;) (while_statement "while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }" while (parenthesized_expression "(iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)" ( (comma_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2" (assignment_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , identifier , identifier )))) , (binary_expression "-1 < iVar2" number_literal < identifier)) )) (compound_statement "{\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }" { (expression_statement "uVar5 = iVar1 + iVar2;" (assignment_expression "uVar5 = iVar1 + iVar2" identifier = (binary_expression "iVar1 + iVar2" identifier + identifier)) ;) (if_statement "if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }" if (parenthesized_expression "(ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20)" ( (binary_expression "ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20" identifier == (pointer_expression "&PTR_s_ltc_hash_descriptor_001d8b20" & identifier)) )) (compound_statement "{\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }" { (if_statement "if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n          *param_2 = uVar5;\n          return 0;\n        }" { (expression_statement "*param_2 = uVar5;" (assignment_expression "*param_2 = uVar5" (pointer_expression "*param_2" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }" if (parenthesized_expression "(*param_2 < uVar5)" ( (binary_expression "*param_2 < uVar5" (pointer_expression "*param_2" * identifier) < identifier) )) (compound_statement "{\n          return 0xffffffff;\n        }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);" (assignment_expression "uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier = (call_expression "__snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" identifier (argument_list "(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (string_literal ""CRYPT_OK"" " string_content ") , number_literal )))) ;) (if_statement "if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          return 0xffffffff;\n        }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (if_statement "if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n          return 0xffffffff;\n        }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" identifier = (binary_expression "uVar5 - uVar4" identifier - identifier)) ;) (expression_statement "local_48 = param_1 + (int)uVar4;" (assignment_expression "local_48 = param_1 + (int)uVar4" identifier = (binary_expression "param_1 + (int)uVar4" identifier + (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;" (assignment_expression "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560" identifier = (pointer_expression "&PTR_s_CRYPT_NOP_001d8560" & identifier)) ;) (expression_statement "puVar7 = PTR_s_CRYPT_ERROR_001d8550;" (assignment_expression "puVar7 = PTR_s_CRYPT_ERROR_001d8550" identifier = identifier) ;) (expression_statement "uVar6 = DAT_001d8558;" (assignment_expression "uVar6 = DAT_001d8558" identifier = identifier) ;) (while_statement "while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }" { (expression_statement "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);" (assignment_expression "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" identifier = (call_expression "__snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" identifier (argument_list "(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            return 0xffffffff;\n          }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (if_statement "if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n            return 0xffffffff;\n          }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" identifier = (binary_expression "uVar5 - uVar4" identifier - identifier)) ;) (expression_statement "local_48 = local_48 + (int)uVar4;" (assignment_expression "local_48 = local_48 + (int)uVar4" identifier = (binary_expression "local_48 + (int)uVar4" identifier + (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }" if (parenthesized_expression "(ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20)" ( (binary_expression "ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20" identifier == (pointer_expression "&PTR_s_ltc_hash_descriptor_001d8b20" & identifier)) )) (compound_statement "{\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }" { (expression_statement "*(undefined1 *)(local_48 + -1) = 0;" (assignment_expression "*(undefined1 *)(local_48 + -1) = 0" (pointer_expression "*(undefined1 *)(local_48 + -1)" * (cast_expression "(undefined1 *)(local_48 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + -1)" ( (binary_expression "local_48 + -1" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));" (assignment_expression "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" identifier = (call_expression "__snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" identifier (argument_list "(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" ( identifier , identifier , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (pointer_expression "*ppuVar8" * identifier) , (pointer_expression "*(undefined4 *)(ppuVar8 + 1)" * (cast_expression "(undefined4 *)(ppuVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 1)" ( (binary_expression "ppuVar8 + 1" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)uVar4 < 0) break;" if (parenthesized_expression "((int)uVar4 < 0)" ( (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n            return 0xffffffff;\n          }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" identifier = (binary_expression "uVar5 - uVar4" identifier - identifier)) ;) (expression_statement "uVar6 = *(undefined4 *)(ppuVar8 + 3);" (assignment_expression "uVar6 = *(undefined4 *)(ppuVar8 + 3)" identifier = (pointer_expression "*(undefined4 *)(ppuVar8 + 3)" * (cast_expression "(undefined4 *)(ppuVar8 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 3)" ( (binary_expression "ppuVar8 + 3" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = ppuVar8[2];" (assignment_expression "puVar7 = ppuVar8[2]" identifier = (subscript_expression "ppuVar8[2]" identifier [ number_literal ])) ;) (expression_statement "local_48 = (int)uVar4 + local_48;" (assignment_expression "local_48 = (int)uVar4 + local_48" identifier = (binary_expression "(int)uVar4 + local_48" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "ppuVar8 = ppuVar8 + 4;" (assignment_expression "ppuVar8 = ppuVar8 + 4" identifier = (binary_expression "ppuVar8 + 4" identifier + number_literal)) ;) })) (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));" (assignment_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (pointer_expression "*ppuVar8" * identifier) , (pointer_expression "*(undefined4 *)(ppuVar8 + 1)" * (cast_expression "(undefined4 *)(ppuVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 1)" ( (binary_expression "ppuVar8 + 1" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 < 0) {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));" (assignment_expression "iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (subscript_expression "ppuVar8[2]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(ppuVar8 + 3)" * (cast_expression "(undefined4 *)(ppuVar8 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 3)" ( (binary_expression "ppuVar8 + 3" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar3 < 0) {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));" (assignment_expression "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" identifier = (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" identifier (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "&DAT_001be9f0" & identifier) , (subscript_expression "ppuVar8[4]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(ppuVar8 + 5)" * (cast_expression "(undefined4 *)(ppuVar8 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 5)" ( (binary_expression "ppuVar8 + 5" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 < 0) {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "uVar6 = *(undefined4 *)(ppuVar8 + 7);" (assignment_expression "uVar6 = *(undefined4 *)(ppuVar8 + 7)" identifier = (pointer_expression "*(undefined4 *)(ppuVar8 + 7)" * (cast_expression "(undefined4 *)(ppuVar8 + 7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 7)" ( (binary_expression "ppuVar8 + 7" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = ppuVar8[6];" (assignment_expression "puVar7 = ppuVar8[6]" identifier = (subscript_expression "ppuVar8[6]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = uVar5 + iVar2 + iVar3 + iVar1;" (assignment_expression "iVar1 = uVar5 + iVar2 + iVar3 + iVar1" identifier = (binary_expression "uVar5 + iVar2 + iVar3 + iVar1" (binary_expression "uVar5 + iVar2 + iVar3" (binary_expression "uVar5 + iVar2" identifier + identifier) + identifier) + identifier)) ;) (expression_statement "ppuVar8 = ppuVar8 + 8;" (assignment_expression "ppuVar8 = ppuVar8 + 8" identifier = (binary_expression "ppuVar8 + 8" identifier + number_literal)) ;) })) })) (return_statement "return 0xffffffff;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , (pointer_expression & IDENT) , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , (pointer_expression & IDENT) , IDENT , IDENT )))) , (binary_expression LIT < IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , (pointer_expression & IDENT) , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , (pointer_expression & IDENT) , (pointer_expression * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , (pointer_expression & IDENT) , (pointer_expression * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + IDENT) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (return_statement return LIT ;) })))
(function_definition "undefined8 crypt_list_all_constants(long param_1,uint *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined **ppuVar8;\n  long local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }\n  return 0xffffffff;\n}" (type_identifier "undefined8") (function_declarator "crypt_list_all_constants(long param_1,uint *param_2)" (identifier "crypt_list_all_constants") (parameter_list "(long param_1,uint *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined **ppuVar8;\n  long local_48;\n  \n  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n  if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }\n  return 0xffffffff;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined **ppuVar8;" (type_identifier "undefined") (pointer_declarator "**ppuVar8" (* "*") (pointer_declarator "*ppuVar8" (* "*") (identifier "ppuVar8"))) (; ";")) (declaration "long local_48;" (sized_type_specifier "long" (long "long")) (identifier "local_48") (; ";")) (expression_statement "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);" (assignment_expression "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" (identifier "iVar1") (= "=") (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" (identifier "__snprintf_chk") (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001be9f0" (& "&") (identifier "DAT_001be9f0")) (, ",") (string_literal ""CRYPT_OK"" (" """) (string_content "CRYPT_OK") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (-1 < iVar1) {\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }" (if "if") (parenthesized_expression "(-1 < iVar1)" (( "(") (binary_expression "-1 < iVar1" (number_literal "-1") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n    puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n    uVar6 = DAT_001d8558;\n    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }\n  }" ({ "{") (expression_statement "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;" (assignment_expression "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560" (identifier "ppuVar8") (= "=") (pointer_expression "&PTR_s_CRYPT_NOP_001d8560" (& "&") (identifier "PTR_s_CRYPT_NOP_001d8560"))) (; ";")) (expression_statement "puVar7 = PTR_s_CRYPT_ERROR_001d8550;" (assignment_expression "puVar7 = PTR_s_CRYPT_ERROR_001d8550" (identifier "puVar7") (= "=") (identifier "PTR_s_CRYPT_ERROR_001d8550")) (; ";")) (expression_statement "uVar6 = DAT_001d8558;" (assignment_expression "uVar6 = DAT_001d8558" (identifier "uVar6") (= "=") (identifier "DAT_001d8558")) (; ";")) (while_statement "while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)\n    {\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }" (while "while") (parenthesized_expression "(iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)" (( "(") (comma_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2" (assignment_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" (identifier "iVar2") (= "=") (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" (identifier "__snprintf_chk") (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001be9f0" (& "&") (identifier "DAT_001be9f0")) (, ",") (identifier "puVar7") (, ",") (identifier "uVar6") () ")")))) (, ",") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2"))) () ")")) (compound_statement "{\n      uVar5 = iVar1 + iVar2;\n      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }\n      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));\n      if (iVar2 < 0) {\n        return 0xffffffff;\n      }\n      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));\n      if (iVar3 < 0) {\n        return 0xffffffff;\n      }\n      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));\n      if (iVar1 < 0) {\n        return 0xffffffff;\n      }\n      uVar6 = *(undefined4 *)(ppuVar8 + 7);\n      puVar7 = ppuVar8[6];\n      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;\n      ppuVar8 = ppuVar8 + 8;\n    }" ({ "{") (expression_statement "uVar5 = iVar1 + iVar2;" (assignment_expression "uVar5 = iVar1 + iVar2" (identifier "uVar5") (= "=") (binary_expression "iVar1 + iVar2" (identifier "iVar1") (+ "+") (identifier "iVar2"))) (; ";")) (if_statement "if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }" (if "if") (parenthesized_expression "(ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20)" (( "(") (binary_expression "ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20" (identifier "ppuVar8") (== "==") (pointer_expression "&PTR_s_ltc_hash_descriptor_001d8b20" (& "&") (identifier "PTR_s_ltc_hash_descriptor_001d8b20"))) () ")")) (compound_statement "{\n        if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }\n        if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }\n        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);\n        if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }\n        if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }\n        uVar5 = uVar5 - uVar4;\n        local_48 = param_1 + (int)uVar4;\n        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;\n        puVar7 = PTR_s_CRYPT_ERROR_001d8550;\n        uVar6 = DAT_001d8558;\n        while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }\n        return 0xffffffff;\n      }" ({ "{") (if_statement "if (param_1 == 0) {\n          *param_2 = uVar5;\n          return 0;\n        }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *param_2 = uVar5;\n          return 0;\n        }" ({ "{") (expression_statement "*param_2 = uVar5;" (assignment_expression "*param_2 = uVar5" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar5")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*param_2 < uVar5) {\n          return 0xffffffff;\n        }" (if "if") (parenthesized_expression "(*param_2 < uVar5)" (( "(") (binary_expression "*param_2 < uVar5" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n          return 0xffffffff;\n        }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);" (assignment_expression "uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" (identifier "uVar4") (= "=") (call_expression "__snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" (identifier "__snprintf_chk") (argument_list "(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar5") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001be9f0" (& "&") (identifier "DAT_001be9f0")) (, ",") (string_literal ""CRYPT_OK"" (" """) (string_content "CRYPT_OK") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((int)uVar4 < 0) {\n          return 0xffffffff;\n        }" (if "if") (parenthesized_expression "((int)uVar4 < 0)" (( "(") (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          return 0xffffffff;\n        }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (if_statement "if (uVar5 < uVar4) {\n          return 0xffffffff;\n        }" (if "if") (parenthesized_expression "(uVar5 < uVar4)" (( "(") (binary_expression "uVar5 < uVar4" (identifier "uVar5") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n          return 0xffffffff;\n        }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" (identifier "uVar5") (= "=") (binary_expression "uVar5 - uVar4" (identifier "uVar5") (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "local_48 = param_1 + (int)uVar4;" (assignment_expression "local_48 = param_1 + (int)uVar4" (identifier "local_48") (= "=") (binary_expression "param_1 + (int)uVar4" (identifier "param_1") (+ "+") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")))) (; ";")) (expression_statement "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;" (assignment_expression "ppuVar8 = &PTR_s_CRYPT_NOP_001d8560" (identifier "ppuVar8") (= "=") (pointer_expression "&PTR_s_CRYPT_NOP_001d8560" (& "&") (identifier "PTR_s_CRYPT_NOP_001d8560"))) (; ";")) (expression_statement "puVar7 = PTR_s_CRYPT_ERROR_001d8550;" (assignment_expression "puVar7 = PTR_s_CRYPT_ERROR_001d8550" (identifier "puVar7") (= "=") (identifier "PTR_s_CRYPT_ERROR_001d8550")) (; ";")) (expression_statement "uVar6 = DAT_001d8558;" (assignment_expression "uVar6 = DAT_001d8558" (identifier "uVar6") (= "=") (identifier "DAT_001d8558")) (; ";")) (while_statement "while( true ) {\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);\n          if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          local_48 = local_48 + (int)uVar4;\n          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }\n          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));\n          if ((int)uVar4 < 0) break;\n          if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }\n          uVar5 = uVar5 - uVar4;\n          uVar6 = *(undefined4 *)(ppuVar8 + 3);\n          puVar7 = ppuVar8[2];\n          local_48 = (int)uVar4 + local_48;\n          ppuVar8 = ppuVar8 + 4;\n        }" ({ "{") (expression_statement "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);" (assignment_expression "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" (identifier "uVar4") (= "=") (call_expression "__snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" (identifier "__snprintf_chk") (argument_list "(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6)" (( "(") (identifier "local_48") (, ",") (identifier "uVar5") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001be9f0" (& "&") (identifier "DAT_001be9f0")) (, ",") (identifier "puVar7") (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if ((int)uVar4 < 0) {\n            return 0xffffffff;\n          }" (if "if") (parenthesized_expression "((int)uVar4 < 0)" (( "(") (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            return 0xffffffff;\n          }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (if_statement "if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }" (if "if") (parenthesized_expression "(uVar5 < uVar4)" (( "(") (binary_expression "uVar5 < uVar4" (identifier "uVar5") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n            return 0xffffffff;\n          }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" (identifier "uVar5") (= "=") (binary_expression "uVar5 - uVar4" (identifier "uVar5") (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "local_48 = local_48 + (int)uVar4;" (assignment_expression "local_48 = local_48 + (int)uVar4" (identifier "local_48") (= "=") (binary_expression "local_48 + (int)uVar4" (identifier "local_48") (+ "+") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")))) (; ";")) (if_statement "if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }" (if "if") (parenthesized_expression "(ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20)" (( "(") (binary_expression "ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20" (identifier "ppuVar8") (== "==") (pointer_expression "&PTR_s_ltc_hash_descriptor_001d8b20" (& "&") (identifier "PTR_s_ltc_hash_descriptor_001d8b20"))) () ")")) (compound_statement "{\n            *(undefined1 *)(local_48 + -1) = 0;\n            return 0;\n          }" ({ "{") (expression_statement "*(undefined1 *)(local_48 + -1) = 0;" (assignment_expression "*(undefined1 *)(local_48 + -1) = 0" (pointer_expression "*(undefined1 *)(local_48 + -1)" (* "*") (cast_expression "(undefined1 *)(local_48 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_48 + -1)" (( "(") (binary_expression "local_48 + -1" (identifier "local_48") (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1));" (assignment_expression "uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" (identifier "uVar4") (= "=") (call_expression "__snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" (identifier "__snprintf_chk") (argument_list "(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                                 *(undefined4 *)(ppuVar8 + 1))" (( "(") (identifier "local_48") (, ",") (identifier "uVar5") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001be9f0" (& "&") (identifier "DAT_001be9f0")) (, ",") (pointer_expression "*ppuVar8" (* "*") (identifier "ppuVar8")) (, ",") (pointer_expression "*(undefined4 *)(ppuVar8 + 1)" (* "*") (cast_expression "(undefined4 *)(ppuVar8 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar8 + 1)" (( "(") (binary_expression "ppuVar8 + 1" (identifier "ppuVar8") (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)uVar4 < 0) break;" (if "if") (parenthesized_expression "((int)uVar4 < 0)" (( "(") (binary_expression "(int)uVar4 < 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (< "<") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (uVar5 < uVar4) {\n            return 0xffffffff;\n          }" (if "if") (parenthesized_expression "(uVar5 < uVar4)" (( "(") (binary_expression "uVar5 < uVar4" (identifier "uVar5") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n            return 0xffffffff;\n          }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 - uVar4;" (assignment_expression "uVar5 = uVar5 - uVar4" (identifier "uVar5") (= "=") (binary_expression "uVar5 - uVar4" (identifier "uVar5") (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(ppuVar8 + 3);" (assignment_expression "uVar6 = *(undefined4 *)(ppuVar8 + 3)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(ppuVar8 + 3)" (* "*") (cast_expression "(undefined4 *)(ppuVar8 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar8 + 3)" (( "(") (binary_expression "ppuVar8 + 3" (identifier "ppuVar8") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "puVar7 = ppuVar8[2];" (assignment_expression "puVar7 = ppuVar8[2]" (identifier "puVar7") (= "=") (subscript_expression "ppuVar8[2]" (identifier "ppuVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_48 = (int)uVar4 + local_48;" (assignment_expression "local_48 = (int)uVar4 + local_48" (identifier "local_48") (= "=") (binary_expression "(int)uVar4 + local_48" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (+ "+") (identifier "local_48"))) (; ";")) (expression_statement "ppuVar8 = ppuVar8 + 4;" (assignment_expression "ppuVar8 = ppuVar8 + 4" (identifier "ppuVar8") (= "=") (binary_expression "ppuVar8 + 4" (identifier "ppuVar8") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1));" (assignment_expression "iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" (identifier "iVar2") (= "=") (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" (identifier "__snprintf_chk") (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,\n                             *(undefined4 *)(ppuVar8 + 1))" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001be9f0" (& "&") (identifier "DAT_001be9f0")) (, ",") (pointer_expression "*ppuVar8" (* "*") (identifier "ppuVar8")) (, ",") (pointer_expression "*(undefined4 *)(ppuVar8 + 1)" (* "*") (cast_expression "(undefined4 *)(ppuVar8 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar8 + 1)" (( "(") (binary_expression "ppuVar8 + 1" (identifier "ppuVar8") (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\n        return 0xffffffff;\n      }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 0xffffffff;\n      }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3));" (assignment_expression "iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" (identifier "iVar3") (= "=") (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" (identifier "__snprintf_chk") (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],\n                             *(undefined4 *)(ppuVar8 + 3))" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001be9f0" (& "&") (identifier "DAT_001be9f0")) (, ",") (subscript_expression "ppuVar8[2]" (identifier "ppuVar8") ([ "[") (number_literal "2") (] "]")) (, ",") (pointer_expression "*(undefined4 *)(ppuVar8 + 3)" (* "*") (cast_expression "(undefined4 *)(ppuVar8 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar8 + 3)" (( "(") (binary_expression "ppuVar8 + 3" (identifier "ppuVar8") (+ "+") (number_literal "3")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n        return 0xffffffff;\n      }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 0xffffffff;\n      }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5));" (assignment_expression "iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" (identifier "iVar1") (= "=") (call_expression "__snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" (identifier "__snprintf_chk") (argument_list "(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],\n                             *(undefined4 *)(ppuVar8 + 5))" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (pointer_expression "&DAT_001be9f0" (& "&") (identifier "DAT_001be9f0")) (, ",") (subscript_expression "ppuVar8[4]" (identifier "ppuVar8") ([ "[") (number_literal "4") (] "]")) (, ",") (pointer_expression "*(undefined4 *)(ppuVar8 + 5)" (* "*") (cast_expression "(undefined4 *)(ppuVar8 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar8 + 5)" (( "(") (binary_expression "ppuVar8 + 5" (identifier "ppuVar8") (+ "+") (number_literal "5")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar1 < 0) {\n        return 0xffffffff;\n      }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        return 0xffffffff;\n      }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "uVar6 = *(undefined4 *)(ppuVar8 + 7);" (assignment_expression "uVar6 = *(undefined4 *)(ppuVar8 + 7)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(ppuVar8 + 7)" (* "*") (cast_expression "(undefined4 *)(ppuVar8 + 7)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar8 + 7)" (( "(") (binary_expression "ppuVar8 + 7" (identifier "ppuVar8") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "puVar7 = ppuVar8[6];" (assignment_expression "puVar7 = ppuVar8[6]" (identifier "puVar7") (= "=") (subscript_expression "ppuVar8[6]" (identifier "ppuVar8") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar1 = uVar5 + iVar2 + iVar3 + iVar1;" (assignment_expression "iVar1 = uVar5 + iVar2 + iVar3 + iVar1" (identifier "iVar1") (= "=") (binary_expression "uVar5 + iVar2 + iVar3 + iVar1" (binary_expression "uVar5 + iVar2 + iVar3" (binary_expression "uVar5 + iVar2" (identifier "uVar5") (+ "+") (identifier "iVar2")) (+ "+") (identifier "iVar3")) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "ppuVar8 = ppuVar8 + 8;" (assignment_expression "ppuVar8 = ppuVar8 + 8" (identifier "ppuVar8") (= "=") (binary_expression "ppuVar8 + 8" (identifier "ppuVar8") (+ "+") (number_literal "8"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */

int function_1(char *var_7,type_1 *names_list_size)

{
  int var_2;
  int var_4;
  int var_12;
  type_1 var_9;
  type_1 var_11;
  type_1 var_8;
  char *pcVar7;
  type_2 *pcVar8;
  type_3 *var_5;
  char *var_10;
  
  var_2 = var_1(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);
  if (-1 < var_2) {
    var_5 = (type_3 *)(var_3 + 2);
    pcVar7 = var_3[1].name;
    var_9 = var_3[1].value;
    while (var_4 = var_1(0,0,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,var_9), -1 < var_4)
    {
      var_8 = var_2 + var_4;
      if (var_5 == var_6) {
        if (var_7 == (char *)0x0) {
          *names_list_size = var_8;
          return 0;
        }
        if (*names_list_size < var_8) {
          return -1;
        }
        var_9 = var_1(var_7,var_8,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);
        if ((int)var_9 < 0) {
          return -1;
        }
        if (var_8 < var_9) {
          return -1;
        }
        var_8 = var_8 - var_9;
        var_10 = var_7 + (int)var_9;
        pcVar8 = var_3;
        pcVar7 = var_3[1].name;
        var_9 = var_3[1].value;
        while( true ) {
          pcVar8 = (type_2 *)((type_3 *)pcVar8 + 2);
          var_9 = var_1(var_10,var_8,1,0xffffffffffffffff,&DAT_001be9f0,pcVar7,var_9);
          if ((int)var_9 < 0) {
            return -1;
          }
          if (var_8 < var_9) {
            return -1;
          }
          var_8 = var_8 - var_9;
          var_10 = var_10 + (int)var_9;
          if ((type_3 *)pcVar8 == var_6) {
            var_10[-1] = '\0';
            return 0;
          }
          var_11 = var_1(var_10,var_8,1,0xffffffffffffffff,&DAT_001be9f0,
                                 ((type_3 *)pcVar8)->name,((type_3 *)pcVar8)->size);
          if ((int)var_11 < 0) break;
          if (var_8 < var_11) {
            return -1;
          }
          var_8 = var_8 - var_11;
          var_9 = ((type_3 *)pcVar8)[1].size;
          pcVar7 = ((type_3 *)pcVar8)[1].name;
          var_10 = var_10 + (int)var_11;
        }
        return -1;
      }
      var_4 = var_1(0,0,1,0xffffffffffffffff,&DAT_001be9f0,var_5->name,var_5->size);
      if (var_4 < 0) {
        return -1;
      }
      var_12 = var_1(0,0,1,0xffffffffffffffff,&DAT_001be9f0,var_5[1].name,var_5[1].size);
      if (var_12 < 0) {
        return -1;
      }
      var_2 = var_1(0,0,1,0xffffffffffffffff,&DAT_001be9f0,var_5[2].name,var_5[2].size);
      if (var_2 < 0) {
        return -1;
      }
      var_9 = var_5[3].size;
      pcVar7 = var_5[3].name;
      var_2 = var_8 + var_4 + var_12 + var_2;
      var_5 = var_5 + 4;
    }
  }
  return -1;
}


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

undefined8 MASKED(long param_1,uint *param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined *puVar7;
  undefined **ppuVar8;
  long local_48;
  
  iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);
  if (-1 < iVar1) {
    ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;
    puVar7 = PTR_s_CRYPT_ERROR_001d8550;
    uVar6 = DAT_001d8558;
    while (iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6), -1 < iVar2)
    {
      uVar5 = iVar1 + iVar2;
      if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {
        if (param_1 == 0) {
          *param_2 = uVar5;
          return 0;
        }
        if (*param_2 < uVar5) {
          return 0xffffffff;
        }
        uVar4 = __snprintf_chk(param_1,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,"CRYPT_OK",0);
        if ((int)uVar4 < 0) {
          return 0xffffffff;
        }
        if (uVar5 < uVar4) {
          return 0xffffffff;
        }
        uVar5 = uVar5 - uVar4;
        local_48 = param_1 + (int)uVar4;
        ppuVar8 = &PTR_s_CRYPT_NOP_001d8560;
        puVar7 = PTR_s_CRYPT_ERROR_001d8550;
        uVar6 = DAT_001d8558;
        while( true ) {
          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,puVar7,uVar6);
          if ((int)uVar4 < 0) {
            return 0xffffffff;
          }
          if (uVar5 < uVar4) {
            return 0xffffffff;
          }
          uVar5 = uVar5 - uVar4;
          local_48 = local_48 + (int)uVar4;
          if (ppuVar8 == &PTR_s_ltc_hash_descriptor_001d8b20) {
            *(undefined1 *)(local_48 + -1) = 0;
            return 0;
          }
          uVar4 = __snprintf_chk(local_48,uVar5,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,
                                 *(undefined4 *)(ppuVar8 + 1));
          if ((int)uVar4 < 0) break;
          if (uVar5 < uVar4) {
            return 0xffffffff;
          }
          uVar5 = uVar5 - uVar4;
          uVar6 = *(undefined4 *)(ppuVar8 + 3);
          puVar7 = ppuVar8[2];
          local_48 = (int)uVar4 + local_48;
          ppuVar8 = ppuVar8 + 4;
        }
        return 0xffffffff;
      }
      iVar2 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,*ppuVar8,
                             *(undefined4 *)(ppuVar8 + 1));
      if (iVar2 < 0) {
        return 0xffffffff;
      }
      iVar3 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[2],
                             *(undefined4 *)(ppuVar8 + 3));
      if (iVar3 < 0) {
        return 0xffffffff;
      }
      iVar1 = __snprintf_chk(0,0,1,0xffffffffffffffff,&DAT_001be9f0,ppuVar8[4],
                             *(undefined4 *)(ppuVar8 + 5));
      if (iVar1 < 0) {
        return 0xffffffff;
      }
      uVar6 = *(undefined4 *)(ppuVar8 + 7);
      puVar7 = ppuVar8[6];
      iVar1 = uVar5 + iVar2 + iVar3 + iVar1;
      ppuVar8 = ppuVar8 + 8;
    }
  }
  return 0xffffffff;
}

