
void adler32_update(adler32_state *ctx,uchar *input,ulong length)

{
  long lVar1;
  ulong uVar2;
  ulong uVar3;
  ulong uVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  byte *pbVar10;
  byte *pbVar11;
  uchar *puVar13;
  ulong uVar14;
  ulong uVar15;
  long lVar16;
  long lVar17;
  long lVar18;
  long lVar19;
  long lVar20;
  long lVar21;
  byte *pbVar12;
  
  if (ctx == (adler32_state *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);
  }
  if (input == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);
  }
  uVar14 = (ulong)ctx->s[0];
  uVar3 = (ulong)ctx->s[1];
  puVar13 = (uchar *)length;
  pbVar11 = input;
  pbVar12 = input;
  if ((length & 7) != 0) {
    do {
      pbVar11 = pbVar12 + 1;
      uVar14 = uVar14 + *pbVar12;
      puVar13 = input + (length - (long)pbVar11);
      uVar3 = uVar3 + uVar14;
      pbVar12 = pbVar11;
    } while (((ulong)puVar13 & 7) != 0);
    if (0xfff0 < uVar14) {
      uVar14 = uVar14 - 0xfff1;
    }
    uVar3 = uVar3 % 0xfff1;
  }
  if (puVar13 == (uchar *)0x0) {
    if (0xfff0 < uVar14) goto LAB_00162ba2;
    if (0xfff0 < uVar3) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);
    }
  }
  else {
    pbVar12 = pbVar11 + (long)puVar13;
    if (((ulong)puVar13 & 8) == 0) goto LAB_00162a10;
    pbVar10 = pbVar11 + 8;
    lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14;
    lVar1 = (ulong)pbVar11[2] + lVar20;
    lVar6 = (ulong)pbVar11[3] + lVar1;
    lVar8 = (ulong)pbVar11[4] + lVar6;
    lVar16 = (ulong)pbVar11[5] + lVar8;
    lVar17 = (ulong)pbVar11[6] + lVar16;
    uVar15 = (ulong)pbVar11[7] + lVar17;
    uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15;
    pbVar11 = pbVar10;
    uVar14 = uVar15;
    if (0xfff0 < uVar15) {
      uVar14 = uVar15 - 0xfff1;
    }
    while (uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12) {
LAB_00162a10:
      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;
      lVar20 = (ulong)pbVar11[2] + lVar1;
      lVar8 = (ulong)pbVar11[3] + lVar20;
      lVar6 = (ulong)pbVar11[4] + lVar8;
      lVar17 = (ulong)pbVar11[5] + lVar6;
      lVar16 = (ulong)pbVar11[6] + lVar17;
      uVar4 = (ulong)pbVar11[7] + lVar16;
      uVar15 = uVar4 - 0xfff1;
      if (uVar4 < 0xfff1) {
        uVar15 = uVar4;
      }
      pbVar10 = pbVar11 + 0x10;
      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;
      lVar21 = (ulong)pbVar11[10] + lVar5;
      lVar19 = (ulong)pbVar11[0xb] + lVar21;
      lVar9 = (ulong)pbVar11[0xc] + lVar19;
      lVar7 = (ulong)pbVar11[0xd] + lVar9;
      lVar18 = (ulong)pbVar11[0xe] + lVar7;
      uVar2 = (ulong)pbVar11[0xf] + lVar18;
      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)
              % 0xfff1 +
              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;
      pbVar11 = pbVar10;
      uVar14 = uVar2 - 0xfff1;
      if (uVar2 < 0xfff1) {
        uVar14 = uVar2;
      }
    }
    if (0xfff0 < uVar14) {
LAB_00162ba2:
                    /* WARNING: Subroutine does not return */
      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);
    }
  }
  ctx->s[0] = (ushort)uVar14;
  ctx->s[1] = (ushort)uVar3;
  return;
}



void adler32_update(ushort *param_1,byte *param_2,byte *param_3)

{
  long lVar1;
  ulong uVar2;
  ulong uVar3;
  ulong uVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  byte *pbVar10;
  byte *pbVar12;
  ulong uVar13;
  ulong uVar14;
  long lVar15;
  long lVar16;
  long lVar17;
  long lVar18;
  long lVar19;
  long lVar20;
  byte *pbVar11;
  
  if (param_1 == (ushort *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);
  }
  if (param_2 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);
  }
  uVar13 = (ulong)*param_1;
  uVar3 = (ulong)param_1[1];
  pbVar12 = param_3;
  pbVar10 = param_2;
  pbVar11 = param_2;
  if (((ulong)param_3 & 7) != 0) {
    do {
      pbVar10 = pbVar11 + 1;
      uVar13 = uVar13 + *pbVar11;
      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);
      uVar3 = uVar3 + uVar13;
      pbVar11 = pbVar10;
    } while (((ulong)pbVar12 & 7) != 0);
    if (0xfff0 < uVar13) {
      uVar13 = uVar13 - 0xfff1;
    }
    uVar3 = uVar3 % 0xfff1;
  }
  if (pbVar12 == (byte *)0x0) {
    if (0xfff0 < uVar13) goto LAB_00162ba2;
    if (0xfff0 < uVar3) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);
    }
  }
  else {
    pbVar11 = pbVar10 + (long)pbVar12;
    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;
    pbVar12 = pbVar10 + 8;
    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;
    lVar1 = (ulong)pbVar10[2] + lVar19;
    lVar6 = (ulong)pbVar10[3] + lVar1;
    lVar8 = (ulong)pbVar10[4] + lVar6;
    lVar15 = (ulong)pbVar10[5] + lVar8;
    lVar16 = (ulong)pbVar10[6] + lVar15;
    uVar14 = (ulong)pbVar10[7] + lVar16;
    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;
    pbVar10 = pbVar12;
    uVar13 = uVar14;
    if (0xfff0 < uVar14) {
      uVar13 = uVar14 - 0xfff1;
    }
    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {
LAB_00162a10:
      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;
      lVar19 = (ulong)pbVar10[2] + lVar1;
      lVar8 = (ulong)pbVar10[3] + lVar19;
      lVar6 = (ulong)pbVar10[4] + lVar8;
      lVar16 = (ulong)pbVar10[5] + lVar6;
      lVar15 = (ulong)pbVar10[6] + lVar16;
      uVar4 = (ulong)pbVar10[7] + lVar15;
      uVar14 = uVar4 - 0xfff1;
      if (uVar4 < 0xfff1) {
        uVar14 = uVar4;
      }
      pbVar12 = pbVar10 + 0x10;
      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;
      lVar20 = (ulong)pbVar10[10] + lVar5;
      lVar18 = (ulong)pbVar10[0xb] + lVar20;
      lVar9 = (ulong)pbVar10[0xc] + lVar18;
      lVar7 = (ulong)pbVar10[0xd] + lVar9;
      lVar17 = (ulong)pbVar10[0xe] + lVar7;
      uVar2 = (ulong)pbVar10[0xf] + lVar17;
      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)
              % 0xfff1 +
              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;
      pbVar10 = pbVar12;
      uVar13 = uVar2 - 0xfff1;
      if (uVar2 < 0xfff1) {
        uVar13 = uVar2;
      }
    }
    if (0xfff0 < uVar13) {
LAB_00162ba2:
                    /* WARNING: Subroutine does not return */
      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);
    }
  }
  *param_1 = (ushort)uVar13;
  param_1[1] = (ushort)uVar3;
  return;
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
TEST RDI,RDI
JZ 0x00162b8a
TEST RSI,RSI
JZ 0x00162b72
MOVZX R10D,word ptr [RDI]
MOVZX ECX,word ptr [RDI + 0x2]
TEST DL,0x7
JZ 0x00162950
MOV R8,RSI
NOP word ptr [RAX + RAX*0x1]
ADD R8,0x1
MOVZX EAX,byte ptr [R8 + -0x1]
MOV R9,RDX
SUB R9,R8
ADD R10,RAX
ADD R9,RSI
ADD RCX,R10
TEST R9B,0x7
JNZ 0x001628f0
CMP R10,0xfff0
MOV RAX,RCX
MOV RSI,RCX
MOV RBX,0xf00e10d2fc5cd
LEA RDX,[R10 + -0xfff1]
CMOVA R10,RDX
MUL RBX
SUB RSI,RDX
SHR RSI,0x1
ADD RDX,RSI
MOV RSI,R8
SHR RDX,0xf
IMUL RBP,RDX,0xfff1
MOV RDX,R9
SUB RCX,RBP
TEST RDX,RDX
JZ 0x00162b48
MOV R8,0xf00e10d2fc5cd
LEA R9,[RSI + RDX*0x1]
AND EDX,0x8
JZ 0x00162a10
MOVZX EAX,byte ptr [RSI]
MOVZX R14D,byte ptr [RSI + 0x1]
ADD RSI,0x8
MOVZX R11D,byte ptr [RSI + -0x5]
MOVZX EBX,byte ptr [RSI + -0x4]
ADD RAX,R10
MOVZX R10D,byte ptr [RSI + -0x6]
MOVZX EDX,byte ptr [RSI + -0x3]
ADD R14,RAX
LEA R13,[R10 + R14*0x1]
ADD RAX,R14
MOVZX R10D,byte ptr [RSI + -0x2]
LEA R12,[R11 + R13*0x1]
LEA RAX,[RAX + R13*0x1]
LEA RBP,[RBX + R12*0x1]
ADD RAX,R12
LEA RBX,[RDX + RBP*0x1]
ADD RAX,RBP
LEA R11,[R10 + RBX*0x1]
MOVZX R10D,byte ptr [RSI + -0x1]
ADD RAX,RBX
ADD RAX,R11
ADD R10,R11
ADD RAX,R10
LEA R14,[R10 + -0xfff1]
ADD RCX,RAX
CMP R10,0xfff0
MOV RAX,RCX
CMOVA R10,R14
MOV R13,RCX
MUL R8
SUB R13,RDX
SHR R13,0x1
ADD RDX,R13
SHR RDX,0xf
IMUL R12,RDX,0xfff1
SUB RCX,R12
CMP RSI,R9
JZ 0x00162b27
NOP dword ptr [RAX]
MOVZX R14D,byte ptr [RSI]
MOVZX EAX,byte ptr [RSI + 0x1]
MOVZX R13D,byte ptr [RSI + 0x2]
MOVZX EBP,byte ptr [RSI + 0x3]
ADD R14,R10
MOVZX EBX,byte ptr [RSI + 0x4]
MOVZX R11D,byte ptr [RSI + 0x5]
ADD RAX,R14
MOVZX R10D,byte ptr [RSI + 0x6]
MOVZX EDX,byte ptr [RSI + 0x7]
ADD R13,RAX
ADD R14,RAX
ADD RBP,R13
ADD R14,R13
ADD RBX,RBP
ADD R14,RBP
MOVZX EBP,byte ptr [RSI + 0xc]
ADD R11,RBX
ADD R14,RBX
MOVZX EBX,byte ptr [RSI + 0xd]
ADD R10,R11
ADD R14,R11
MOVZX R11D,byte ptr [RSI + 0xe]
ADD RDX,R10
ADD R14,R10
MOVZX R10D,byte ptr [RSI + 0x8]
ADD R14,RDX
LEA R12,[RDX + -0xfff1]
ADD RCX,R14
CMP RDX,0xfff0
MOV RAX,RCX
CMOVBE R12,RDX
MOV R14,RCX
ADD RSI,0x10
MUL R8
MOVZX EAX,byte ptr [RSI + -0x1]
ADD R10,R12
MOVZX R12D,byte ptr [RSI + -0x5]
SUB R14,RDX
SHR R14,0x1
ADD RDX,R14
MOVZX R14D,byte ptr [RSI + -0x6]
SHR RDX,0xf
IMUL R13,RDX,0xfff1
MOVZX EDX,byte ptr [RSI + -0x7]
ADD RDX,R10
ADD R14,RDX
ADD R10,RDX
SUB RCX,R13
ADD R12,R14
ADD R10,R14
ADD RBP,R12
ADD R10,R12
ADD RBX,RBP
ADD R10,RBP
ADD R11,RBX
ADD R10,RBX
ADD RAX,R11
ADD R10,R11
ADD R10,RAX
ADD RCX,R10
CMP RAX,0xfff0
LEA R10,[RAX + -0xfff1]
CMOVBE R10,RAX
MOV RAX,RCX
MOV R13,RCX
MUL R8
SUB R13,RDX
SHR R13,0x1
ADD RDX,R13
SHR RDX,0xf
IMUL R14,RDX,0xfff1
SUB RCX,R14
CMP RSI,R9
JNZ 0x00162a10
CMP R10,0xfff0
JA 0x00162ba2
MOV word ptr [RDI],R10W
MOV word ptr [RDI + 0x2],CX
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
CMP R10,0xfff0
JA 0x00162ba2
CMP RCX,0xfff0
JBE 0x00162b30
MOV EDX,0x4c
LEA RSI,[0x1bdc2e]
LEA RDI,[0x1bdc6e]
CALL 0x00114270
MOV EDX,0x21
LEA RSI,[0x1bdc2e]
LEA RDI,[0x1bdc4d]
CALL 0x00114270
MOV EDX,0x20
LEA RSI,[0x1bdc2e]
LEA RDI,[0x1bdc41]
CALL 0x00114270
MOV EDX,0x4b
LEA RSI,[0x1bdc2e]
LEA RDI,[0x1bdc5b]
CALL 0x00114270
(translation_unit "void adler32_update(ushort *param_1,byte *param_2,byte *param_3)\n\n{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar12;\n  ulong uVar13;\n  ulong uVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  byte *pbVar11;\n  \n  if (param_1 == (ushort *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar13 = (ulong)*param_1;\n  uVar3 = (ulong)param_1[1];\n  pbVar12 = param_3;\n  pbVar10 = param_2;\n  pbVar11 = param_2;\n  if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  *param_1 = (ushort)uVar13;\n  param_1[1] = (ushort)uVar3;\n  return;\n}\n\n" (function_definition "void adler32_update(ushort *param_1,byte *param_2,byte *param_3)\n\n{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar12;\n  ulong uVar13;\n  ulong uVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  byte *pbVar11;\n  \n  if (param_1 == (ushort *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar13 = (ulong)*param_1;\n  uVar3 = (ulong)param_1[1];\n  pbVar12 = param_3;\n  pbVar10 = param_2;\n  pbVar11 = param_2;\n  if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  *param_1 = (ushort)uVar13;\n  param_1[1] = (ushort)uVar3;\n  return;\n}" primitive_type (function_declarator "adler32_update(ushort *param_1,byte *param_2,byte *param_3)" identifier (parameter_list "(ushort *param_1,byte *param_2,byte *param_3)" ( (parameter_declaration "ushort *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar12;\n  ulong uVar13;\n  ulong uVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  byte *pbVar11;\n  \n  if (param_1 == (ushort *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar13 = (ulong)*param_1;\n  uVar3 = (ulong)param_1[1];\n  pbVar12 = param_3;\n  pbVar10 = param_2;\n  pbVar11 = param_2;\n  if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  *param_1 = (ushort)uVar13;\n  param_1[1] = (ushort)uVar3;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar19;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (if_statement "if (param_1 == (ushort *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }" if (parenthesized_expression "(param_1 == (ushort *)0x0)" ( (binary_expression "param_1 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }" { comment (expression_statement "crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);" (call_expression "crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20)" identifier (argument_list "("ctx != NULL","src/misc/adler32.c",0x20)" ( (string_literal ""ctx != NULL"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }" { comment (expression_statement "crypt_argchk("input != NULL","src/misc/adler32.c",0x21);" (call_expression "crypt_argchk("input != NULL","src/misc/adler32.c",0x21)" identifier (argument_list "("input != NULL","src/misc/adler32.c",0x21)" ( (string_literal ""input != NULL"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar13 = (ulong)*param_1;" (assignment_expression "uVar13 = (ulong)*param_1" identifier = (binary_expression "(ulong)*param_1" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "uVar3 = (ulong)param_1[1];" (assignment_expression "uVar3 = (ulong)param_1[1]" identifier = (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "pbVar12 = param_3;" (assignment_expression "pbVar12 = param_3" identifier = identifier) ;) (expression_statement "pbVar10 = param_2;" (assignment_expression "pbVar10 = param_2" identifier = identifier) ;) (expression_statement "pbVar11 = param_2;" (assignment_expression "pbVar11 = param_2" identifier = identifier) ;) (if_statement "if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }" if (parenthesized_expression "(((ulong)param_3 & 7) != 0)" ( (binary_expression "((ulong)param_3 & 7) != 0" (parenthesized_expression "((ulong)param_3 & 7)" ( (binary_expression "(ulong)param_3 & 7" (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }" { (do_statement "do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);" do (compound_statement "{\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    }" { (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar13 = uVar13 + *pbVar11;" (assignment_expression "uVar13 = uVar13 + *pbVar11" identifier = (binary_expression "uVar13 + *pbVar11" identifier + (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);" (assignment_expression "pbVar12 = param_2 + ((long)param_3 - (long)pbVar10)" identifier = (binary_expression "param_2 + ((long)param_3 - (long)pbVar10)" identifier + (parenthesized_expression "((long)param_3 - (long)pbVar10)" ( (binary_expression "(long)param_3 - (long)pbVar10" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "uVar3 = uVar3 + uVar13;" (assignment_expression "uVar3 = uVar3 + uVar13" identifier = (binary_expression "uVar3 + uVar13" identifier + identifier)) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(((ulong)pbVar12 & 7) != 0)" ( (binary_expression "((ulong)pbVar12 & 7) != 0" (parenthesized_expression "((ulong)pbVar12 & 7)" ( (binary_expression "(ulong)pbVar12 & 7" (cast_expression "(ulong)pbVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) )) ;) (if_statement "if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }" if (parenthesized_expression "(0xfff0 < uVar13)" ( (binary_expression "0xfff0 < uVar13" number_literal < identifier) )) (compound_statement "{\n      uVar13 = uVar13 - 0xfff1;\n    }" { (expression_statement "uVar13 = uVar13 - 0xfff1;" (assignment_expression "uVar13 = uVar13 - 0xfff1" identifier = (binary_expression "uVar13 - 0xfff1" identifier - number_literal)) ;) })) (expression_statement "uVar3 = uVar3 % 0xfff1;" (assignment_expression "uVar3 = uVar3 % 0xfff1" identifier = (binary_expression "uVar3 % 0xfff1" identifier % number_literal)) ;) })) (if_statement "if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" if (parenthesized_expression "(pbVar12 == (byte *)0x0)" ( (binary_expression "pbVar12 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }" { (if_statement "if (0xfff0 < uVar13) goto LAB_00162ba2;" if (parenthesized_expression "(0xfff0 < uVar13)" ( (binary_expression "0xfff0 < uVar13" number_literal < identifier) )) (goto_statement "goto LAB_00162ba2;" goto statement_identifier ;)) (if_statement "if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }" if (parenthesized_expression "(0xfff0 < uVar3)" ( (binary_expression "0xfff0 < uVar3" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }" { comment (expression_statement "crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);" (call_expression "crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c)" identifier (argument_list "("s2 < _adler32_base","src/misc/adler32.c",0x4c)" ( (string_literal ""s2 < _adler32_base"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) }) (else_clause "else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" else (compound_statement "{\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" { (expression_statement "pbVar11 = pbVar10 + (long)pbVar12;" (assignment_expression "pbVar11 = pbVar10 + (long)pbVar12" identifier = (binary_expression "pbVar10 + (long)pbVar12" identifier + (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;" if (parenthesized_expression "(((ulong)pbVar12 & 8) == 0)" ( (binary_expression "((ulong)pbVar12 & 8) == 0" (parenthesized_expression "((ulong)pbVar12 & 8)" ( (binary_expression "(ulong)pbVar12 & 8" (cast_expression "(ulong)pbVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00162a10;" goto statement_identifier ;)) (expression_statement "pbVar12 = pbVar10 + 8;" (assignment_expression "pbVar12 = pbVar10 + 8" identifier = (binary_expression "pbVar10 + 8" identifier + number_literal)) ;) (expression_statement "lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" (assignment_expression "lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13" identifier = (binary_expression "(ulong)pbVar10[1] + *pbVar10 + uVar13" (binary_expression "(ulong)pbVar10[1] + *pbVar10" (cast_expression "(ulong)pbVar10[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[1]" identifier [ number_literal ])) + (pointer_expression "*pbVar10" * identifier)) + identifier)) ;) (expression_statement "lVar1 = (ulong)pbVar10[2] + lVar19;" (assignment_expression "lVar1 = (ulong)pbVar10[2] + lVar19" identifier = (binary_expression "(ulong)pbVar10[2] + lVar19" (cast_expression "(ulong)pbVar10[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar6 = (ulong)pbVar10[3] + lVar1;" (assignment_expression "lVar6 = (ulong)pbVar10[3] + lVar1" identifier = (binary_expression "(ulong)pbVar10[3] + lVar1" (cast_expression "(ulong)pbVar10[3]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar8 = (ulong)pbVar10[4] + lVar6;" (assignment_expression "lVar8 = (ulong)pbVar10[4] + lVar6" identifier = (binary_expression "(ulong)pbVar10[4] + lVar6" (cast_expression "(ulong)pbVar10[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[4]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar15 = (ulong)pbVar10[5] + lVar8;" (assignment_expression "lVar15 = (ulong)pbVar10[5] + lVar8" identifier = (binary_expression "(ulong)pbVar10[5] + lVar8" (cast_expression "(ulong)pbVar10[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar16 = (ulong)pbVar10[6] + lVar15;" (assignment_expression "lVar16 = (ulong)pbVar10[6] + lVar15" identifier = (binary_expression "(ulong)pbVar10[6] + lVar15" (cast_expression "(ulong)pbVar10[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[6]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar14 = (ulong)pbVar10[7] + lVar16;" (assignment_expression "uVar14 = (ulong)pbVar10[7] + lVar16" identifier = (binary_expression "(ulong)pbVar10[7] + lVar16" (cast_expression "(ulong)pbVar10[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[7]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;" (assignment_expression "uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14" identifier = (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19" (binary_expression "uVar3 + *pbVar10 + uVar13" (binary_expression "uVar3 + *pbVar10" identifier + (pointer_expression "*pbVar10" * identifier)) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "pbVar10 = pbVar12;" (assignment_expression "pbVar10 = pbVar12" identifier = identifier) ;) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;) (if_statement "if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }" if (parenthesized_expression "(0xfff0 < uVar14)" ( (binary_expression "0xfff0 < uVar14" number_literal < identifier) )) (compound_statement "{\n      uVar13 = uVar14 - 0xfff1;\n    }" { (expression_statement "uVar13 = uVar14 - 0xfff1;" (assignment_expression "uVar13 = uVar14 - 0xfff1" identifier = (binary_expression "uVar14 - 0xfff1" identifier - number_literal)) ;) })) (while_statement "while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }" while (parenthesized_expression "(uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11)" ( (comma_expression "uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11" (assignment_expression "uVar3 = uVar3 % 0xfff1" identifier = (binary_expression "uVar3 % 0xfff1" identifier % number_literal)) , (binary_expression "pbVar10 != pbVar11" identifier != identifier)) )) (compound_statement "{\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }" { (labeled_statement "LAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" statement_identifier : (expression_statement "lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" (assignment_expression "lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13" identifier = (binary_expression "(ulong)pbVar10[1] + *pbVar10 + uVar13" (binary_expression "(ulong)pbVar10[1] + *pbVar10" (cast_expression "(ulong)pbVar10[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[1]" identifier [ number_literal ])) + (pointer_expression "*pbVar10" * identifier)) + identifier)) ;)) (expression_statement "lVar19 = (ulong)pbVar10[2] + lVar1;" (assignment_expression "lVar19 = (ulong)pbVar10[2] + lVar1" identifier = (binary_expression "(ulong)pbVar10[2] + lVar1" (cast_expression "(ulong)pbVar10[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar8 = (ulong)pbVar10[3] + lVar19;" (assignment_expression "lVar8 = (ulong)pbVar10[3] + lVar19" identifier = (binary_expression "(ulong)pbVar10[3] + lVar19" (cast_expression "(ulong)pbVar10[3]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar6 = (ulong)pbVar10[4] + lVar8;" (assignment_expression "lVar6 = (ulong)pbVar10[4] + lVar8" identifier = (binary_expression "(ulong)pbVar10[4] + lVar8" (cast_expression "(ulong)pbVar10[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[4]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar16 = (ulong)pbVar10[5] + lVar6;" (assignment_expression "lVar16 = (ulong)pbVar10[5] + lVar6" identifier = (binary_expression "(ulong)pbVar10[5] + lVar6" (cast_expression "(ulong)pbVar10[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar15 = (ulong)pbVar10[6] + lVar16;" (assignment_expression "lVar15 = (ulong)pbVar10[6] + lVar16" identifier = (binary_expression "(ulong)pbVar10[6] + lVar16" (cast_expression "(ulong)pbVar10[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[6]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar4 = (ulong)pbVar10[7] + lVar15;" (assignment_expression "uVar4 = (ulong)pbVar10[7] + lVar15" identifier = (binary_expression "(ulong)pbVar10[7] + lVar15" (cast_expression "(ulong)pbVar10[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[7]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar14 = uVar4 - 0xfff1;" (assignment_expression "uVar14 = uVar4 - 0xfff1" identifier = (binary_expression "uVar4 - 0xfff1" identifier - number_literal)) ;) (if_statement "if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }" if (parenthesized_expression "(uVar4 < 0xfff1)" ( (binary_expression "uVar4 < 0xfff1" identifier < number_literal) )) (compound_statement "{\n        uVar14 = uVar4;\n      }" { (expression_statement "uVar14 = uVar4;" (assignment_expression "uVar14 = uVar4" identifier = identifier) ;) })) (expression_statement "pbVar12 = pbVar10 + 0x10;" (assignment_expression "pbVar12 = pbVar10 + 0x10" identifier = (binary_expression "pbVar10 + 0x10" identifier + number_literal)) ;) (expression_statement "lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;" (assignment_expression "lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14" identifier = (binary_expression "(ulong)pbVar10[9] + pbVar10[8] + uVar14" (binary_expression "(ulong)pbVar10[9] + pbVar10[8]" (cast_expression "(ulong)pbVar10[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[9]" identifier [ number_literal ])) + (subscript_expression "pbVar10[8]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar20 = (ulong)pbVar10[10] + lVar5;" (assignment_expression "lVar20 = (ulong)pbVar10[10] + lVar5" identifier = (binary_expression "(ulong)pbVar10[10] + lVar5" (cast_expression "(ulong)pbVar10[10]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[10]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar18 = (ulong)pbVar10[0xb] + lVar20;" (assignment_expression "lVar18 = (ulong)pbVar10[0xb] + lVar20" identifier = (binary_expression "(ulong)pbVar10[0xb] + lVar20" (cast_expression "(ulong)pbVar10[0xb]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xb]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar9 = (ulong)pbVar10[0xc] + lVar18;" (assignment_expression "lVar9 = (ulong)pbVar10[0xc] + lVar18" identifier = (binary_expression "(ulong)pbVar10[0xc] + lVar18" (cast_expression "(ulong)pbVar10[0xc]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xc]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar7 = (ulong)pbVar10[0xd] + lVar9;" (assignment_expression "lVar7 = (ulong)pbVar10[0xd] + lVar9" identifier = (binary_expression "(ulong)pbVar10[0xd] + lVar9" (cast_expression "(ulong)pbVar10[0xd]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xd]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar17 = (ulong)pbVar10[0xe] + lVar7;" (assignment_expression "lVar17 = (ulong)pbVar10[0xe] + lVar7" identifier = (binary_expression "(ulong)pbVar10[0xe] + lVar7" (cast_expression "(ulong)pbVar10[0xe]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xe]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar2 = (ulong)pbVar10[0xf] + lVar17;" (assignment_expression "uVar2 = (ulong)pbVar10[0xf] + lVar17" identifier = (binary_expression "(ulong)pbVar10[0xf] + lVar17" (cast_expression "(ulong)pbVar10[0xf]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xf]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;" (assignment_expression "uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2" identifier = (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8]" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1" (parenthesized_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)" ( (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1" (binary_expression "uVar3 + *pbVar10 + uVar13" (binary_expression "uVar3 + *pbVar10" identifier + (pointer_expression "*pbVar10" * identifier)) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) )) % number_literal) + (subscript_expression "pbVar10[8]" identifier [ number_literal ])) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "pbVar10 = pbVar12;" (assignment_expression "pbVar10 = pbVar12" identifier = identifier) ;) (expression_statement "uVar13 = uVar2 - 0xfff1;" (assignment_expression "uVar13 = uVar2 - 0xfff1" identifier = (binary_expression "uVar2 - 0xfff1" identifier - number_literal)) ;) (if_statement "if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }" if (parenthesized_expression "(uVar2 < 0xfff1)" ( (binary_expression "uVar2 < 0xfff1" identifier < number_literal) )) (compound_statement "{\n        uVar13 = uVar2;\n      }" { (expression_statement "uVar13 = uVar2;" (assignment_expression "uVar13 = uVar2" identifier = identifier) ;) })) })) (if_statement "if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }" if (parenthesized_expression "(0xfff0 < uVar13)" ( (binary_expression "0xfff0 < uVar13" number_literal < identifier) )) (compound_statement "{\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }" { (labeled_statement "LAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);" statement_identifier : comment (expression_statement "crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);" (call_expression "crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b)" identifier (argument_list "("s1 < _adler32_base","src/misc/adler32.c",0x4b)" ( (string_literal ""s1 < _adler32_base"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;)) })) }))) (expression_statement "*param_1 = (ushort)uVar13;" (assignment_expression "*param_1 = (ushort)uVar13" (pointer_expression "*param_1" * identifier) = (cast_expression "(ushort)uVar13" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "param_1[1] = (ushort)uVar3;" (assignment_expression "param_1[1] = (ushort)uVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(ushort)uVar3" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void adler32_update(adler32_state *ctx,uchar *input,ulong length)\n\n{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  uchar *puVar13;\n  ulong uVar14;\n  ulong uVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  long lVar21;\n  byte *pbVar12;\n  \n  if (ctx == (adler32_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (input == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar14 = (ulong)ctx->s[0];\n  uVar3 = (ulong)ctx->s[1];\n  puVar13 = (uchar *)length;\n  pbVar11 = input;\n  pbVar12 = input;\n  if ((length & 7) != 0) {\n    do {\n      pbVar11 = pbVar12 + 1;\n      uVar14 = uVar14 + *pbVar12;\n      puVar13 = input + (length - (long)pbVar11);\n      uVar3 = uVar3 + uVar14;\n      pbVar12 = pbVar11;\n    } while (((ulong)puVar13 & 7) != 0);\n    if (0xfff0 < uVar14) {\n      uVar14 = uVar14 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (puVar13 == (uchar *)0x0) {\n    if (0xfff0 < uVar14) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar12 = pbVar11 + (long)puVar13;\n    if (((ulong)puVar13 & 8) == 0) goto LAB_00162a10;\n    pbVar10 = pbVar11 + 8;\n    lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n    lVar1 = (ulong)pbVar11[2] + lVar20;\n    lVar6 = (ulong)pbVar11[3] + lVar1;\n    lVar8 = (ulong)pbVar11[4] + lVar6;\n    lVar16 = (ulong)pbVar11[5] + lVar8;\n    lVar17 = (ulong)pbVar11[6] + lVar16;\n    uVar15 = (ulong)pbVar11[7] + lVar17;\n    uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15;\n    pbVar11 = pbVar10;\n    uVar14 = uVar15;\n    if (0xfff0 < uVar15) {\n      uVar14 = uVar15 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n      lVar20 = (ulong)pbVar11[2] + lVar1;\n      lVar8 = (ulong)pbVar11[3] + lVar20;\n      lVar6 = (ulong)pbVar11[4] + lVar8;\n      lVar17 = (ulong)pbVar11[5] + lVar6;\n      lVar16 = (ulong)pbVar11[6] + lVar17;\n      uVar4 = (ulong)pbVar11[7] + lVar16;\n      uVar15 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }\n      pbVar10 = pbVar11 + 0x10;\n      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;\n      lVar21 = (ulong)pbVar11[10] + lVar5;\n      lVar19 = (ulong)pbVar11[0xb] + lVar21;\n      lVar9 = (ulong)pbVar11[0xc] + lVar19;\n      lVar7 = (ulong)pbVar11[0xd] + lVar9;\n      lVar18 = (ulong)pbVar11[0xe] + lVar7;\n      uVar2 = (ulong)pbVar11[0xf] + lVar18;\n      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;\n      pbVar11 = pbVar10;\n      uVar14 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar14) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  ctx->s[0] = (ushort)uVar14;\n  ctx->s[1] = (ushort)uVar3;\n  return;\n}\n\n" (function_definition "void adler32_update(adler32_state *ctx,uchar *input,ulong length)\n\n{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  uchar *puVar13;\n  ulong uVar14;\n  ulong uVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  long lVar21;\n  byte *pbVar12;\n  \n  if (ctx == (adler32_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (input == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar14 = (ulong)ctx->s[0];\n  uVar3 = (ulong)ctx->s[1];\n  puVar13 = (uchar *)length;\n  pbVar11 = input;\n  pbVar12 = input;\n  if ((length & 7) != 0) {\n    do {\n      pbVar11 = pbVar12 + 1;\n      uVar14 = uVar14 + *pbVar12;\n      puVar13 = input + (length - (long)pbVar11);\n      uVar3 = uVar3 + uVar14;\n      pbVar12 = pbVar11;\n    } while (((ulong)puVar13 & 7) != 0);\n    if (0xfff0 < uVar14) {\n      uVar14 = uVar14 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (puVar13 == (uchar *)0x0) {\n    if (0xfff0 < uVar14) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar12 = pbVar11 + (long)puVar13;\n    if (((ulong)puVar13 & 8) == 0) goto LAB_00162a10;\n    pbVar10 = pbVar11 + 8;\n    lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n    lVar1 = (ulong)pbVar11[2] + lVar20;\n    lVar6 = (ulong)pbVar11[3] + lVar1;\n    lVar8 = (ulong)pbVar11[4] + lVar6;\n    lVar16 = (ulong)pbVar11[5] + lVar8;\n    lVar17 = (ulong)pbVar11[6] + lVar16;\n    uVar15 = (ulong)pbVar11[7] + lVar17;\n    uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15;\n    pbVar11 = pbVar10;\n    uVar14 = uVar15;\n    if (0xfff0 < uVar15) {\n      uVar14 = uVar15 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n      lVar20 = (ulong)pbVar11[2] + lVar1;\n      lVar8 = (ulong)pbVar11[3] + lVar20;\n      lVar6 = (ulong)pbVar11[4] + lVar8;\n      lVar17 = (ulong)pbVar11[5] + lVar6;\n      lVar16 = (ulong)pbVar11[6] + lVar17;\n      uVar4 = (ulong)pbVar11[7] + lVar16;\n      uVar15 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }\n      pbVar10 = pbVar11 + 0x10;\n      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;\n      lVar21 = (ulong)pbVar11[10] + lVar5;\n      lVar19 = (ulong)pbVar11[0xb] + lVar21;\n      lVar9 = (ulong)pbVar11[0xc] + lVar19;\n      lVar7 = (ulong)pbVar11[0xd] + lVar9;\n      lVar18 = (ulong)pbVar11[0xe] + lVar7;\n      uVar2 = (ulong)pbVar11[0xf] + lVar18;\n      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;\n      pbVar11 = pbVar10;\n      uVar14 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar14) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  ctx->s[0] = (ushort)uVar14;\n  ctx->s[1] = (ushort)uVar3;\n  return;\n}" primitive_type (function_declarator "adler32_update(adler32_state *ctx,uchar *input,ulong length)" identifier (parameter_list "(adler32_state *ctx,uchar *input,ulong length)" ( (parameter_declaration "adler32_state *ctx" type_identifier (pointer_declarator "*ctx" * identifier)) , (parameter_declaration "uchar *input" type_identifier (pointer_declarator "*input" * identifier)) , (parameter_declaration "ulong length" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  uchar *puVar13;\n  ulong uVar14;\n  ulong uVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  long lVar21;\n  byte *pbVar12;\n  \n  if (ctx == (adler32_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (input == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar14 = (ulong)ctx->s[0];\n  uVar3 = (ulong)ctx->s[1];\n  puVar13 = (uchar *)length;\n  pbVar11 = input;\n  pbVar12 = input;\n  if ((length & 7) != 0) {\n    do {\n      pbVar11 = pbVar12 + 1;\n      uVar14 = uVar14 + *pbVar12;\n      puVar13 = input + (length - (long)pbVar11);\n      uVar3 = uVar3 + uVar14;\n      pbVar12 = pbVar11;\n    } while (((ulong)puVar13 & 7) != 0);\n    if (0xfff0 < uVar14) {\n      uVar14 = uVar14 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (puVar13 == (uchar *)0x0) {\n    if (0xfff0 < uVar14) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar12 = pbVar11 + (long)puVar13;\n    if (((ulong)puVar13 & 8) == 0) goto LAB_00162a10;\n    pbVar10 = pbVar11 + 8;\n    lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n    lVar1 = (ulong)pbVar11[2] + lVar20;\n    lVar6 = (ulong)pbVar11[3] + lVar1;\n    lVar8 = (ulong)pbVar11[4] + lVar6;\n    lVar16 = (ulong)pbVar11[5] + lVar8;\n    lVar17 = (ulong)pbVar11[6] + lVar16;\n    uVar15 = (ulong)pbVar11[7] + lVar17;\n    uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15;\n    pbVar11 = pbVar10;\n    uVar14 = uVar15;\n    if (0xfff0 < uVar15) {\n      uVar14 = uVar15 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n      lVar20 = (ulong)pbVar11[2] + lVar1;\n      lVar8 = (ulong)pbVar11[3] + lVar20;\n      lVar6 = (ulong)pbVar11[4] + lVar8;\n      lVar17 = (ulong)pbVar11[5] + lVar6;\n      lVar16 = (ulong)pbVar11[6] + lVar17;\n      uVar4 = (ulong)pbVar11[7] + lVar16;\n      uVar15 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }\n      pbVar10 = pbVar11 + 0x10;\n      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;\n      lVar21 = (ulong)pbVar11[10] + lVar5;\n      lVar19 = (ulong)pbVar11[0xb] + lVar21;\n      lVar9 = (ulong)pbVar11[0xc] + lVar19;\n      lVar7 = (ulong)pbVar11[0xd] + lVar9;\n      lVar18 = (ulong)pbVar11[0xe] + lVar7;\n      uVar2 = (ulong)pbVar11[0xf] + lVar18;\n      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;\n      pbVar11 = pbVar10;\n      uVar14 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar14) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  ctx->s[0] = (ushort)uVar14;\n  ctx->s[1] = (ushort)uVar3;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uchar *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar19;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar21;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (if_statement "if (ctx == (adler32_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }" if (parenthesized_expression "(ctx == (adler32_state *)0x0)" ( (binary_expression "ctx == (adler32_state *)0x0" identifier == (cast_expression "(adler32_state *)0x0" ( (type_descriptor "adler32_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }" { comment (expression_statement "crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);" (call_expression "crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20)" identifier (argument_list "("ctx != NULL","src/misc/adler32.c",0x20)" ( (string_literal ""ctx != NULL"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (input == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }" if (parenthesized_expression "(input == (uchar *)0x0)" ( (binary_expression "input == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }" { comment (expression_statement "crypt_argchk("input != NULL","src/misc/adler32.c",0x21);" (call_expression "crypt_argchk("input != NULL","src/misc/adler32.c",0x21)" identifier (argument_list "("input != NULL","src/misc/adler32.c",0x21)" ( (string_literal ""input != NULL"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar14 = (ulong)ctx->s[0];" (assignment_expression "uVar14 = (ulong)ctx->s[0]" identifier = (cast_expression "(ulong)ctx->s[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "ctx->s[0]" (field_expression "ctx->s" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "uVar3 = (ulong)ctx->s[1];" (assignment_expression "uVar3 = (ulong)ctx->s[1]" identifier = (cast_expression "(ulong)ctx->s[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "ctx->s[1]" (field_expression "ctx->s" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "puVar13 = (uchar *)length;" (assignment_expression "puVar13 = (uchar *)length" identifier = (cast_expression "(uchar *)length" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar11 = input;" (assignment_expression "pbVar11 = input" identifier = identifier) ;) (expression_statement "pbVar12 = input;" (assignment_expression "pbVar12 = input" identifier = identifier) ;) (if_statement "if ((length & 7) != 0) {\n    do {\n      pbVar11 = pbVar12 + 1;\n      uVar14 = uVar14 + *pbVar12;\n      puVar13 = input + (length - (long)pbVar11);\n      uVar3 = uVar3 + uVar14;\n      pbVar12 = pbVar11;\n    } while (((ulong)puVar13 & 7) != 0);\n    if (0xfff0 < uVar14) {\n      uVar14 = uVar14 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }" if (parenthesized_expression "((length & 7) != 0)" ( (binary_expression "(length & 7) != 0" (parenthesized_expression "(length & 7)" ( (binary_expression "length & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar11 = pbVar12 + 1;\n      uVar14 = uVar14 + *pbVar12;\n      puVar13 = input + (length - (long)pbVar11);\n      uVar3 = uVar3 + uVar14;\n      pbVar12 = pbVar11;\n    } while (((ulong)puVar13 & 7) != 0);\n    if (0xfff0 < uVar14) {\n      uVar14 = uVar14 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }" { (do_statement "do {\n      pbVar11 = pbVar12 + 1;\n      uVar14 = uVar14 + *pbVar12;\n      puVar13 = input + (length - (long)pbVar11);\n      uVar3 = uVar3 + uVar14;\n      pbVar12 = pbVar11;\n    } while (((ulong)puVar13 & 7) != 0);" do (compound_statement "{\n      pbVar11 = pbVar12 + 1;\n      uVar14 = uVar14 + *pbVar12;\n      puVar13 = input + (length - (long)pbVar11);\n      uVar3 = uVar3 + uVar14;\n      pbVar12 = pbVar11;\n    }" { (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = uVar14 + *pbVar12;" (assignment_expression "uVar14 = uVar14 + *pbVar12" identifier = (binary_expression "uVar14 + *pbVar12" identifier + (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "puVar13 = input + (length - (long)pbVar11);" (assignment_expression "puVar13 = input + (length - (long)pbVar11)" identifier = (binary_expression "input + (length - (long)pbVar11)" identifier + (parenthesized_expression "(length - (long)pbVar11)" ( (binary_expression "length - (long)pbVar11" identifier - (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "uVar3 = uVar3 + uVar14;" (assignment_expression "uVar3 = uVar3 + uVar14" identifier = (binary_expression "uVar3 + uVar14" identifier + identifier)) ;) (expression_statement "pbVar12 = pbVar11;" (assignment_expression "pbVar12 = pbVar11" identifier = identifier) ;) }) while (parenthesized_expression "(((ulong)puVar13 & 7) != 0)" ( (binary_expression "((ulong)puVar13 & 7) != 0" (parenthesized_expression "((ulong)puVar13 & 7)" ( (binary_expression "(ulong)puVar13 & 7" (cast_expression "(ulong)puVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) )) ;) (if_statement "if (0xfff0 < uVar14) {\n      uVar14 = uVar14 - 0xfff1;\n    }" if (parenthesized_expression "(0xfff0 < uVar14)" ( (binary_expression "0xfff0 < uVar14" number_literal < identifier) )) (compound_statement "{\n      uVar14 = uVar14 - 0xfff1;\n    }" { (expression_statement "uVar14 = uVar14 - 0xfff1;" (assignment_expression "uVar14 = uVar14 - 0xfff1" identifier = (binary_expression "uVar14 - 0xfff1" identifier - number_literal)) ;) })) (expression_statement "uVar3 = uVar3 % 0xfff1;" (assignment_expression "uVar3 = uVar3 % 0xfff1" identifier = (binary_expression "uVar3 % 0xfff1" identifier % number_literal)) ;) })) (if_statement "if (puVar13 == (uchar *)0x0) {\n    if (0xfff0 < uVar14) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar12 = pbVar11 + (long)puVar13;\n    if (((ulong)puVar13 & 8) == 0) goto LAB_00162a10;\n    pbVar10 = pbVar11 + 8;\n    lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n    lVar1 = (ulong)pbVar11[2] + lVar20;\n    lVar6 = (ulong)pbVar11[3] + lVar1;\n    lVar8 = (ulong)pbVar11[4] + lVar6;\n    lVar16 = (ulong)pbVar11[5] + lVar8;\n    lVar17 = (ulong)pbVar11[6] + lVar16;\n    uVar15 = (ulong)pbVar11[7] + lVar17;\n    uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15;\n    pbVar11 = pbVar10;\n    uVar14 = uVar15;\n    if (0xfff0 < uVar15) {\n      uVar14 = uVar15 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n      lVar20 = (ulong)pbVar11[2] + lVar1;\n      lVar8 = (ulong)pbVar11[3] + lVar20;\n      lVar6 = (ulong)pbVar11[4] + lVar8;\n      lVar17 = (ulong)pbVar11[5] + lVar6;\n      lVar16 = (ulong)pbVar11[6] + lVar17;\n      uVar4 = (ulong)pbVar11[7] + lVar16;\n      uVar15 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }\n      pbVar10 = pbVar11 + 0x10;\n      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;\n      lVar21 = (ulong)pbVar11[10] + lVar5;\n      lVar19 = (ulong)pbVar11[0xb] + lVar21;\n      lVar9 = (ulong)pbVar11[0xc] + lVar19;\n      lVar7 = (ulong)pbVar11[0xd] + lVar9;\n      lVar18 = (ulong)pbVar11[0xe] + lVar7;\n      uVar2 = (ulong)pbVar11[0xf] + lVar18;\n      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;\n      pbVar11 = pbVar10;\n      uVar14 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar14) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" if (parenthesized_expression "(puVar13 == (uchar *)0x0)" ( (binary_expression "puVar13 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (0xfff0 < uVar14) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }" { (if_statement "if (0xfff0 < uVar14) goto LAB_00162ba2;" if (parenthesized_expression "(0xfff0 < uVar14)" ( (binary_expression "0xfff0 < uVar14" number_literal < identifier) )) (goto_statement "goto LAB_00162ba2;" goto statement_identifier ;)) (if_statement "if (0xfff0 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }" if (parenthesized_expression "(0xfff0 < uVar3)" ( (binary_expression "0xfff0 < uVar3" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }" { comment (expression_statement "crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);" (call_expression "crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c)" identifier (argument_list "("s2 < _adler32_base","src/misc/adler32.c",0x4c)" ( (string_literal ""s2 < _adler32_base"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) }) (else_clause "else {\n    pbVar12 = pbVar11 + (long)puVar13;\n    if (((ulong)puVar13 & 8) == 0) goto LAB_00162a10;\n    pbVar10 = pbVar11 + 8;\n    lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n    lVar1 = (ulong)pbVar11[2] + lVar20;\n    lVar6 = (ulong)pbVar11[3] + lVar1;\n    lVar8 = (ulong)pbVar11[4] + lVar6;\n    lVar16 = (ulong)pbVar11[5] + lVar8;\n    lVar17 = (ulong)pbVar11[6] + lVar16;\n    uVar15 = (ulong)pbVar11[7] + lVar17;\n    uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15;\n    pbVar11 = pbVar10;\n    uVar14 = uVar15;\n    if (0xfff0 < uVar15) {\n      uVar14 = uVar15 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n      lVar20 = (ulong)pbVar11[2] + lVar1;\n      lVar8 = (ulong)pbVar11[3] + lVar20;\n      lVar6 = (ulong)pbVar11[4] + lVar8;\n      lVar17 = (ulong)pbVar11[5] + lVar6;\n      lVar16 = (ulong)pbVar11[6] + lVar17;\n      uVar4 = (ulong)pbVar11[7] + lVar16;\n      uVar15 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }\n      pbVar10 = pbVar11 + 0x10;\n      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;\n      lVar21 = (ulong)pbVar11[10] + lVar5;\n      lVar19 = (ulong)pbVar11[0xb] + lVar21;\n      lVar9 = (ulong)pbVar11[0xc] + lVar19;\n      lVar7 = (ulong)pbVar11[0xd] + lVar9;\n      lVar18 = (ulong)pbVar11[0xe] + lVar7;\n      uVar2 = (ulong)pbVar11[0xf] + lVar18;\n      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;\n      pbVar11 = pbVar10;\n      uVar14 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar14) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" else (compound_statement "{\n    pbVar12 = pbVar11 + (long)puVar13;\n    if (((ulong)puVar13 & 8) == 0) goto LAB_00162a10;\n    pbVar10 = pbVar11 + 8;\n    lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n    lVar1 = (ulong)pbVar11[2] + lVar20;\n    lVar6 = (ulong)pbVar11[3] + lVar1;\n    lVar8 = (ulong)pbVar11[4] + lVar6;\n    lVar16 = (ulong)pbVar11[5] + lVar8;\n    lVar17 = (ulong)pbVar11[6] + lVar16;\n    uVar15 = (ulong)pbVar11[7] + lVar17;\n    uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15;\n    pbVar11 = pbVar10;\n    uVar14 = uVar15;\n    if (0xfff0 < uVar15) {\n      uVar14 = uVar15 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n      lVar20 = (ulong)pbVar11[2] + lVar1;\n      lVar8 = (ulong)pbVar11[3] + lVar20;\n      lVar6 = (ulong)pbVar11[4] + lVar8;\n      lVar17 = (ulong)pbVar11[5] + lVar6;\n      lVar16 = (ulong)pbVar11[6] + lVar17;\n      uVar4 = (ulong)pbVar11[7] + lVar16;\n      uVar15 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }\n      pbVar10 = pbVar11 + 0x10;\n      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;\n      lVar21 = (ulong)pbVar11[10] + lVar5;\n      lVar19 = (ulong)pbVar11[0xb] + lVar21;\n      lVar9 = (ulong)pbVar11[0xc] + lVar19;\n      lVar7 = (ulong)pbVar11[0xd] + lVar9;\n      lVar18 = (ulong)pbVar11[0xe] + lVar7;\n      uVar2 = (ulong)pbVar11[0xf] + lVar18;\n      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;\n      pbVar11 = pbVar10;\n      uVar14 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar14) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" { (expression_statement "pbVar12 = pbVar11 + (long)puVar13;" (assignment_expression "pbVar12 = pbVar11 + (long)puVar13" identifier = (binary_expression "pbVar11 + (long)puVar13" identifier + (cast_expression "(long)puVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (((ulong)puVar13 & 8) == 0) goto LAB_00162a10;" if (parenthesized_expression "(((ulong)puVar13 & 8) == 0)" ( (binary_expression "((ulong)puVar13 & 8) == 0" (parenthesized_expression "((ulong)puVar13 & 8)" ( (binary_expression "(ulong)puVar13 & 8" (cast_expression "(ulong)puVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00162a10;" goto statement_identifier ;)) (expression_statement "pbVar10 = pbVar11 + 8;" (assignment_expression "pbVar10 = pbVar11 + 8" identifier = (binary_expression "pbVar11 + 8" identifier + number_literal)) ;) (expression_statement "lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14;" (assignment_expression "lVar20 = (ulong)pbVar11[1] + *pbVar11 + uVar14" identifier = (binary_expression "(ulong)pbVar11[1] + *pbVar11 + uVar14" (binary_expression "(ulong)pbVar11[1] + *pbVar11" (cast_expression "(ulong)pbVar11[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[1]" identifier [ number_literal ])) + (pointer_expression "*pbVar11" * identifier)) + identifier)) ;) (expression_statement "lVar1 = (ulong)pbVar11[2] + lVar20;" (assignment_expression "lVar1 = (ulong)pbVar11[2] + lVar20" identifier = (binary_expression "(ulong)pbVar11[2] + lVar20" (cast_expression "(ulong)pbVar11[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar6 = (ulong)pbVar11[3] + lVar1;" (assignment_expression "lVar6 = (ulong)pbVar11[3] + lVar1" identifier = (binary_expression "(ulong)pbVar11[3] + lVar1" (cast_expression "(ulong)pbVar11[3]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar8 = (ulong)pbVar11[4] + lVar6;" (assignment_expression "lVar8 = (ulong)pbVar11[4] + lVar6" identifier = (binary_expression "(ulong)pbVar11[4] + lVar6" (cast_expression "(ulong)pbVar11[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[4]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar16 = (ulong)pbVar11[5] + lVar8;" (assignment_expression "lVar16 = (ulong)pbVar11[5] + lVar8" identifier = (binary_expression "(ulong)pbVar11[5] + lVar8" (cast_expression "(ulong)pbVar11[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar17 = (ulong)pbVar11[6] + lVar16;" (assignment_expression "lVar17 = (ulong)pbVar11[6] + lVar16" identifier = (binary_expression "(ulong)pbVar11[6] + lVar16" (cast_expression "(ulong)pbVar11[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[6]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar15 = (ulong)pbVar11[7] + lVar17;" (assignment_expression "uVar15 = (ulong)pbVar11[7] + lVar17" identifier = (binary_expression "(ulong)pbVar11[7] + lVar17" (cast_expression "(ulong)pbVar11[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[7]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15;" (assignment_expression "uVar3 = uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15" identifier = (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17 + uVar15" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16 + lVar17" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8 + lVar16" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6 + lVar8" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1 + lVar6" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar20 + lVar1" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar20" (binary_expression "uVar3 + *pbVar11 + uVar14" (binary_expression "uVar3 + *pbVar11" identifier + (pointer_expression "*pbVar11" * identifier)) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "uVar14 = uVar15;" (assignment_expression "uVar14 = uVar15" identifier = identifier) ;) (if_statement "if (0xfff0 < uVar15) {\n      uVar14 = uVar15 - 0xfff1;\n    }" if (parenthesized_expression "(0xfff0 < uVar15)" ( (binary_expression "0xfff0 < uVar15" number_literal < identifier) )) (compound_statement "{\n      uVar14 = uVar15 - 0xfff1;\n    }" { (expression_statement "uVar14 = uVar15 - 0xfff1;" (assignment_expression "uVar14 = uVar15 - 0xfff1" identifier = (binary_expression "uVar15 - 0xfff1" identifier - number_literal)) ;) })) (while_statement "while (uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n      lVar20 = (ulong)pbVar11[2] + lVar1;\n      lVar8 = (ulong)pbVar11[3] + lVar20;\n      lVar6 = (ulong)pbVar11[4] + lVar8;\n      lVar17 = (ulong)pbVar11[5] + lVar6;\n      lVar16 = (ulong)pbVar11[6] + lVar17;\n      uVar4 = (ulong)pbVar11[7] + lVar16;\n      uVar15 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }\n      pbVar10 = pbVar11 + 0x10;\n      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;\n      lVar21 = (ulong)pbVar11[10] + lVar5;\n      lVar19 = (ulong)pbVar11[0xb] + lVar21;\n      lVar9 = (ulong)pbVar11[0xc] + lVar19;\n      lVar7 = (ulong)pbVar11[0xd] + lVar9;\n      lVar18 = (ulong)pbVar11[0xe] + lVar7;\n      uVar2 = (ulong)pbVar11[0xf] + lVar18;\n      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;\n      pbVar11 = pbVar10;\n      uVar14 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }\n    }" while (parenthesized_expression "(uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12)" ( (comma_expression "uVar3 = uVar3 % 0xfff1, pbVar11 != pbVar12" (assignment_expression "uVar3 = uVar3 % 0xfff1" identifier = (binary_expression "uVar3 % 0xfff1" identifier % number_literal)) , (binary_expression "pbVar11 != pbVar12" identifier != identifier)) )) (compound_statement "{\nLAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;\n      lVar20 = (ulong)pbVar11[2] + lVar1;\n      lVar8 = (ulong)pbVar11[3] + lVar20;\n      lVar6 = (ulong)pbVar11[4] + lVar8;\n      lVar17 = (ulong)pbVar11[5] + lVar6;\n      lVar16 = (ulong)pbVar11[6] + lVar17;\n      uVar4 = (ulong)pbVar11[7] + lVar16;\n      uVar15 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }\n      pbVar10 = pbVar11 + 0x10;\n      lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;\n      lVar21 = (ulong)pbVar11[10] + lVar5;\n      lVar19 = (ulong)pbVar11[0xb] + lVar21;\n      lVar9 = (ulong)pbVar11[0xc] + lVar19;\n      lVar7 = (ulong)pbVar11[0xd] + lVar9;\n      lVar18 = (ulong)pbVar11[0xe] + lVar7;\n      uVar2 = (ulong)pbVar11[0xf] + lVar18;\n      uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;\n      pbVar11 = pbVar10;\n      uVar14 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }\n    }" { (labeled_statement "LAB_00162a10:\n      lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;" statement_identifier : (expression_statement "lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14;" (assignment_expression "lVar1 = (ulong)pbVar11[1] + *pbVar11 + uVar14" identifier = (binary_expression "(ulong)pbVar11[1] + *pbVar11 + uVar14" (binary_expression "(ulong)pbVar11[1] + *pbVar11" (cast_expression "(ulong)pbVar11[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[1]" identifier [ number_literal ])) + (pointer_expression "*pbVar11" * identifier)) + identifier)) ;)) (expression_statement "lVar20 = (ulong)pbVar11[2] + lVar1;" (assignment_expression "lVar20 = (ulong)pbVar11[2] + lVar1" identifier = (binary_expression "(ulong)pbVar11[2] + lVar1" (cast_expression "(ulong)pbVar11[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar8 = (ulong)pbVar11[3] + lVar20;" (assignment_expression "lVar8 = (ulong)pbVar11[3] + lVar20" identifier = (binary_expression "(ulong)pbVar11[3] + lVar20" (cast_expression "(ulong)pbVar11[3]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar6 = (ulong)pbVar11[4] + lVar8;" (assignment_expression "lVar6 = (ulong)pbVar11[4] + lVar8" identifier = (binary_expression "(ulong)pbVar11[4] + lVar8" (cast_expression "(ulong)pbVar11[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[4]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar17 = (ulong)pbVar11[5] + lVar6;" (assignment_expression "lVar17 = (ulong)pbVar11[5] + lVar6" identifier = (binary_expression "(ulong)pbVar11[5] + lVar6" (cast_expression "(ulong)pbVar11[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar16 = (ulong)pbVar11[6] + lVar17;" (assignment_expression "lVar16 = (ulong)pbVar11[6] + lVar17" identifier = (binary_expression "(ulong)pbVar11[6] + lVar17" (cast_expression "(ulong)pbVar11[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[6]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar4 = (ulong)pbVar11[7] + lVar16;" (assignment_expression "uVar4 = (ulong)pbVar11[7] + lVar16" identifier = (binary_expression "(ulong)pbVar11[7] + lVar16" (cast_expression "(ulong)pbVar11[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[7]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar15 = uVar4 - 0xfff1;" (assignment_expression "uVar15 = uVar4 - 0xfff1" identifier = (binary_expression "uVar4 - 0xfff1" identifier - number_literal)) ;) (if_statement "if (uVar4 < 0xfff1) {\n        uVar15 = uVar4;\n      }" if (parenthesized_expression "(uVar4 < 0xfff1)" ( (binary_expression "uVar4 < 0xfff1" identifier < number_literal) )) (compound_statement "{\n        uVar15 = uVar4;\n      }" { (expression_statement "uVar15 = uVar4;" (assignment_expression "uVar15 = uVar4" identifier = identifier) ;) })) (expression_statement "pbVar10 = pbVar11 + 0x10;" (assignment_expression "pbVar10 = pbVar11 + 0x10" identifier = (binary_expression "pbVar11 + 0x10" identifier + number_literal)) ;) (expression_statement "lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15;" (assignment_expression "lVar5 = (ulong)pbVar11[9] + pbVar11[8] + uVar15" identifier = (binary_expression "(ulong)pbVar11[9] + pbVar11[8] + uVar15" (binary_expression "(ulong)pbVar11[9] + pbVar11[8]" (cast_expression "(ulong)pbVar11[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[9]" identifier [ number_literal ])) + (subscript_expression "pbVar11[8]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar21 = (ulong)pbVar11[10] + lVar5;" (assignment_expression "lVar21 = (ulong)pbVar11[10] + lVar5" identifier = (binary_expression "(ulong)pbVar11[10] + lVar5" (cast_expression "(ulong)pbVar11[10]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[10]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar19 = (ulong)pbVar11[0xb] + lVar21;" (assignment_expression "lVar19 = (ulong)pbVar11[0xb] + lVar21" identifier = (binary_expression "(ulong)pbVar11[0xb] + lVar21" (cast_expression "(ulong)pbVar11[0xb]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[0xb]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar9 = (ulong)pbVar11[0xc] + lVar19;" (assignment_expression "lVar9 = (ulong)pbVar11[0xc] + lVar19" identifier = (binary_expression "(ulong)pbVar11[0xc] + lVar19" (cast_expression "(ulong)pbVar11[0xc]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[0xc]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar7 = (ulong)pbVar11[0xd] + lVar9;" (assignment_expression "lVar7 = (ulong)pbVar11[0xd] + lVar9" identifier = (binary_expression "(ulong)pbVar11[0xd] + lVar9" (cast_expression "(ulong)pbVar11[0xd]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[0xd]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar18 = (ulong)pbVar11[0xe] + lVar7;" (assignment_expression "lVar18 = (ulong)pbVar11[0xe] + lVar7" identifier = (binary_expression "(ulong)pbVar11[0xe] + lVar7" (cast_expression "(ulong)pbVar11[0xe]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[0xe]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar2 = (ulong)pbVar11[0xf] + lVar18;" (assignment_expression "uVar2 = (ulong)pbVar11[0xf] + lVar18" identifier = (binary_expression "(ulong)pbVar11[0xf] + lVar18" (cast_expression "(ulong)pbVar11[0xf]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar11[0xf]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2;" (assignment_expression "uVar3 = (uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2" identifier = (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18 + uVar2" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7 + lVar18" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9 + lVar7" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19 + lVar9" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21 + lVar19" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5 + lVar21" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15 + lVar5" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8] + uVar15" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1 +\n              pbVar11[8]" (binary_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)\n              % 0xfff1" (parenthesized_expression "(uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4)" ( (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16 + uVar4" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17 + lVar16" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6 + lVar17" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8 + lVar6" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20 + lVar8" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar1 + lVar20" (binary_expression "uVar3 + *pbVar11 + uVar14 + lVar1" (binary_expression "uVar3 + *pbVar11 + uVar14" (binary_expression "uVar3 + *pbVar11" identifier + (pointer_expression "*pbVar11" * identifier)) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) )) % number_literal) + (subscript_expression "pbVar11[8]" identifier [ number_literal ])) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "uVar14 = uVar2 - 0xfff1;" (assignment_expression "uVar14 = uVar2 - 0xfff1" identifier = (binary_expression "uVar2 - 0xfff1" identifier - number_literal)) ;) (if_statement "if (uVar2 < 0xfff1) {\n        uVar14 = uVar2;\n      }" if (parenthesized_expression "(uVar2 < 0xfff1)" ( (binary_expression "uVar2 < 0xfff1" identifier < number_literal) )) (compound_statement "{\n        uVar14 = uVar2;\n      }" { (expression_statement "uVar14 = uVar2;" (assignment_expression "uVar14 = uVar2" identifier = identifier) ;) })) })) (if_statement "if (0xfff0 < uVar14) {\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }" if (parenthesized_expression "(0xfff0 < uVar14)" ( (binary_expression "0xfff0 < uVar14" number_literal < identifier) )) (compound_statement "{\nLAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }" { (labeled_statement "LAB_00162ba2:\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);" statement_identifier : comment (expression_statement "crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);" (call_expression "crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b)" identifier (argument_list "("s1 < _adler32_base","src/misc/adler32.c",0x4b)" ( (string_literal ""s1 < _adler32_base"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;)) })) }))) (expression_statement "ctx->s[0] = (ushort)uVar14;" (assignment_expression "ctx->s[0] = (ushort)uVar14" (subscript_expression "ctx->s[0]" (field_expression "ctx->s" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "ctx->s[1] = (ushort)uVar3;" (assignment_expression "ctx->s[1] = (ushort)uVar3" (subscript_expression "ctx->s[1]" (field_expression "ctx->s" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(ushort)uVar3" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void adler32_update(ushort *param_1,byte *param_2,byte *param_3)\n\n{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar12;\n  ulong uVar13;\n  ulong uVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  byte *pbVar11;\n  \n  if (param_1 == (ushort *)0x0) {\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (param_2 == (byte *)0x0) {\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar13 = (ulong)*param_1;\n  uVar3 = (ulong)param_1[1];\n  pbVar12 = param_3;\n  pbVar10 = param_2;\n  pbVar11 = param_2;\n  if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  *param_1 = (ushort)uVar13;\n  param_1[1] = (ushort)uVar3;\n  return;\n}\n\n" (function_definition "void adler32_update(ushort *param_1,byte *param_2,byte *param_3)\n\n{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar12;\n  ulong uVar13;\n  ulong uVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  byte *pbVar11;\n  \n  if (param_1 == (ushort *)0x0) {\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (param_2 == (byte *)0x0) {\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar13 = (ulong)*param_1;\n  uVar3 = (ulong)param_1[1];\n  pbVar12 = param_3;\n  pbVar10 = param_2;\n  pbVar11 = param_2;\n  if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  *param_1 = (ushort)uVar13;\n  param_1[1] = (ushort)uVar3;\n  return;\n}" primitive_type (function_declarator "adler32_update(ushort *param_1,byte *param_2,byte *param_3)" identifier (parameter_list "(ushort *param_1,byte *param_2,byte *param_3)" ( (parameter_declaration "ushort *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar12;\n  ulong uVar13;\n  ulong uVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  byte *pbVar11;\n  \n  if (param_1 == (ushort *)0x0) {\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (param_2 == (byte *)0x0) {\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar13 = (ulong)*param_1;\n  uVar3 = (ulong)param_1[1];\n  pbVar12 = param_3;\n  pbVar10 = param_2;\n  pbVar11 = param_2;\n  if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  *param_1 = (ushort)uVar13;\n  param_1[1] = (ushort)uVar3;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar19;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (if_statement "if (param_1 == (ushort *)0x0) {\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }" if (parenthesized_expression "(param_1 == (ushort *)0x0)" ( (binary_expression "param_1 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }" { (expression_statement "crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);" (call_expression "crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20)" identifier (argument_list "("ctx != NULL","src/misc/adler32.c",0x20)" ( (string_literal ""ctx != NULL"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == (byte *)0x0) {\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }" { (expression_statement "crypt_argchk("input != NULL","src/misc/adler32.c",0x21);" (call_expression "crypt_argchk("input != NULL","src/misc/adler32.c",0x21)" identifier (argument_list "("input != NULL","src/misc/adler32.c",0x21)" ( (string_literal ""input != NULL"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar13 = (ulong)*param_1;" (assignment_expression "uVar13 = (ulong)*param_1" identifier = (binary_expression "(ulong)*param_1" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "uVar3 = (ulong)param_1[1];" (assignment_expression "uVar3 = (ulong)param_1[1]" identifier = (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "pbVar12 = param_3;" (assignment_expression "pbVar12 = param_3" identifier = identifier) ;) (expression_statement "pbVar10 = param_2;" (assignment_expression "pbVar10 = param_2" identifier = identifier) ;) (expression_statement "pbVar11 = param_2;" (assignment_expression "pbVar11 = param_2" identifier = identifier) ;) (if_statement "if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }" if (parenthesized_expression "(((ulong)param_3 & 7) != 0)" ( (binary_expression "((ulong)param_3 & 7) != 0" (parenthesized_expression "((ulong)param_3 & 7)" ( (binary_expression "(ulong)param_3 & 7" (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }" { (do_statement "do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);" do (compound_statement "{\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    }" { (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar13 = uVar13 + *pbVar11;" (assignment_expression "uVar13 = uVar13 + *pbVar11" identifier = (binary_expression "uVar13 + *pbVar11" identifier + (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);" (assignment_expression "pbVar12 = param_2 + ((long)param_3 - (long)pbVar10)" identifier = (binary_expression "param_2 + ((long)param_3 - (long)pbVar10)" identifier + (parenthesized_expression "((long)param_3 - (long)pbVar10)" ( (binary_expression "(long)param_3 - (long)pbVar10" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "uVar3 = uVar3 + uVar13;" (assignment_expression "uVar3 = uVar3 + uVar13" identifier = (binary_expression "uVar3 + uVar13" identifier + identifier)) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(((ulong)pbVar12 & 7) != 0)" ( (binary_expression "((ulong)pbVar12 & 7) != 0" (parenthesized_expression "((ulong)pbVar12 & 7)" ( (binary_expression "(ulong)pbVar12 & 7" (cast_expression "(ulong)pbVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) )) ;) (if_statement "if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }" if (parenthesized_expression "(0xfff0 < uVar13)" ( (binary_expression "0xfff0 < uVar13" number_literal < identifier) )) (compound_statement "{\n      uVar13 = uVar13 - 0xfff1;\n    }" { (expression_statement "uVar13 = uVar13 - 0xfff1;" (assignment_expression "uVar13 = uVar13 - 0xfff1" identifier = (binary_expression "uVar13 - 0xfff1" identifier - number_literal)) ;) })) (expression_statement "uVar3 = uVar3 % 0xfff1;" (assignment_expression "uVar3 = uVar3 % 0xfff1" identifier = (binary_expression "uVar3 % 0xfff1" identifier % number_literal)) ;) })) (if_statement "if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" if (parenthesized_expression "(pbVar12 == (byte *)0x0)" ( (binary_expression "pbVar12 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }" { (if_statement "if (0xfff0 < uVar13) goto LAB_00162ba2;" if (parenthesized_expression "(0xfff0 < uVar13)" ( (binary_expression "0xfff0 < uVar13" number_literal < identifier) )) (goto_statement "goto LAB_00162ba2;" goto statement_identifier ;)) (if_statement "if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }" if (parenthesized_expression "(0xfff0 < uVar3)" ( (binary_expression "0xfff0 < uVar3" number_literal < identifier) )) (compound_statement "{\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }" { (expression_statement "crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);" (call_expression "crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c)" identifier (argument_list "("s2 < _adler32_base","src/misc/adler32.c",0x4c)" ( (string_literal ""s2 < _adler32_base"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;) })) }) (else_clause "else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" else (compound_statement "{\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" { (expression_statement "pbVar11 = pbVar10 + (long)pbVar12;" (assignment_expression "pbVar11 = pbVar10 + (long)pbVar12" identifier = (binary_expression "pbVar10 + (long)pbVar12" identifier + (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;" if (parenthesized_expression "(((ulong)pbVar12 & 8) == 0)" ( (binary_expression "((ulong)pbVar12 & 8) == 0" (parenthesized_expression "((ulong)pbVar12 & 8)" ( (binary_expression "(ulong)pbVar12 & 8" (cast_expression "(ulong)pbVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00162a10;" goto statement_identifier ;)) (expression_statement "pbVar12 = pbVar10 + 8;" (assignment_expression "pbVar12 = pbVar10 + 8" identifier = (binary_expression "pbVar10 + 8" identifier + number_literal)) ;) (expression_statement "lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" (assignment_expression "lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13" identifier = (binary_expression "(ulong)pbVar10[1] + *pbVar10 + uVar13" (binary_expression "(ulong)pbVar10[1] + *pbVar10" (cast_expression "(ulong)pbVar10[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[1]" identifier [ number_literal ])) + (pointer_expression "*pbVar10" * identifier)) + identifier)) ;) (expression_statement "lVar1 = (ulong)pbVar10[2] + lVar19;" (assignment_expression "lVar1 = (ulong)pbVar10[2] + lVar19" identifier = (binary_expression "(ulong)pbVar10[2] + lVar19" (cast_expression "(ulong)pbVar10[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar6 = (ulong)pbVar10[3] + lVar1;" (assignment_expression "lVar6 = (ulong)pbVar10[3] + lVar1" identifier = (binary_expression "(ulong)pbVar10[3] + lVar1" (cast_expression "(ulong)pbVar10[3]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar8 = (ulong)pbVar10[4] + lVar6;" (assignment_expression "lVar8 = (ulong)pbVar10[4] + lVar6" identifier = (binary_expression "(ulong)pbVar10[4] + lVar6" (cast_expression "(ulong)pbVar10[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[4]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar15 = (ulong)pbVar10[5] + lVar8;" (assignment_expression "lVar15 = (ulong)pbVar10[5] + lVar8" identifier = (binary_expression "(ulong)pbVar10[5] + lVar8" (cast_expression "(ulong)pbVar10[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar16 = (ulong)pbVar10[6] + lVar15;" (assignment_expression "lVar16 = (ulong)pbVar10[6] + lVar15" identifier = (binary_expression "(ulong)pbVar10[6] + lVar15" (cast_expression "(ulong)pbVar10[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[6]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar14 = (ulong)pbVar10[7] + lVar16;" (assignment_expression "uVar14 = (ulong)pbVar10[7] + lVar16" identifier = (binary_expression "(ulong)pbVar10[7] + lVar16" (cast_expression "(ulong)pbVar10[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[7]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;" (assignment_expression "uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14" identifier = (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19" (binary_expression "uVar3 + *pbVar10 + uVar13" (binary_expression "uVar3 + *pbVar10" identifier + (pointer_expression "*pbVar10" * identifier)) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "pbVar10 = pbVar12;" (assignment_expression "pbVar10 = pbVar12" identifier = identifier) ;) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;) (if_statement "if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }" if (parenthesized_expression "(0xfff0 < uVar14)" ( (binary_expression "0xfff0 < uVar14" number_literal < identifier) )) (compound_statement "{\n      uVar13 = uVar14 - 0xfff1;\n    }" { (expression_statement "uVar13 = uVar14 - 0xfff1;" (assignment_expression "uVar13 = uVar14 - 0xfff1" identifier = (binary_expression "uVar14 - 0xfff1" identifier - number_literal)) ;) })) (while_statement "while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }" while (parenthesized_expression "(uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11)" ( (comma_expression "uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11" (assignment_expression "uVar3 = uVar3 % 0xfff1" identifier = (binary_expression "uVar3 % 0xfff1" identifier % number_literal)) , (binary_expression "pbVar10 != pbVar11" identifier != identifier)) )) (compound_statement "{\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }" { (labeled_statement "LAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" statement_identifier : (expression_statement "lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" (assignment_expression "lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13" identifier = (binary_expression "(ulong)pbVar10[1] + *pbVar10 + uVar13" (binary_expression "(ulong)pbVar10[1] + *pbVar10" (cast_expression "(ulong)pbVar10[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[1]" identifier [ number_literal ])) + (pointer_expression "*pbVar10" * identifier)) + identifier)) ;)) (expression_statement "lVar19 = (ulong)pbVar10[2] + lVar1;" (assignment_expression "lVar19 = (ulong)pbVar10[2] + lVar1" identifier = (binary_expression "(ulong)pbVar10[2] + lVar1" (cast_expression "(ulong)pbVar10[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar8 = (ulong)pbVar10[3] + lVar19;" (assignment_expression "lVar8 = (ulong)pbVar10[3] + lVar19" identifier = (binary_expression "(ulong)pbVar10[3] + lVar19" (cast_expression "(ulong)pbVar10[3]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar6 = (ulong)pbVar10[4] + lVar8;" (assignment_expression "lVar6 = (ulong)pbVar10[4] + lVar8" identifier = (binary_expression "(ulong)pbVar10[4] + lVar8" (cast_expression "(ulong)pbVar10[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[4]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar16 = (ulong)pbVar10[5] + lVar6;" (assignment_expression "lVar16 = (ulong)pbVar10[5] + lVar6" identifier = (binary_expression "(ulong)pbVar10[5] + lVar6" (cast_expression "(ulong)pbVar10[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar15 = (ulong)pbVar10[6] + lVar16;" (assignment_expression "lVar15 = (ulong)pbVar10[6] + lVar16" identifier = (binary_expression "(ulong)pbVar10[6] + lVar16" (cast_expression "(ulong)pbVar10[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[6]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar4 = (ulong)pbVar10[7] + lVar15;" (assignment_expression "uVar4 = (ulong)pbVar10[7] + lVar15" identifier = (binary_expression "(ulong)pbVar10[7] + lVar15" (cast_expression "(ulong)pbVar10[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[7]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar14 = uVar4 - 0xfff1;" (assignment_expression "uVar14 = uVar4 - 0xfff1" identifier = (binary_expression "uVar4 - 0xfff1" identifier - number_literal)) ;) (if_statement "if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }" if (parenthesized_expression "(uVar4 < 0xfff1)" ( (binary_expression "uVar4 < 0xfff1" identifier < number_literal) )) (compound_statement "{\n        uVar14 = uVar4;\n      }" { (expression_statement "uVar14 = uVar4;" (assignment_expression "uVar14 = uVar4" identifier = identifier) ;) })) (expression_statement "pbVar12 = pbVar10 + 0x10;" (assignment_expression "pbVar12 = pbVar10 + 0x10" identifier = (binary_expression "pbVar10 + 0x10" identifier + number_literal)) ;) (expression_statement "lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;" (assignment_expression "lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14" identifier = (binary_expression "(ulong)pbVar10[9] + pbVar10[8] + uVar14" (binary_expression "(ulong)pbVar10[9] + pbVar10[8]" (cast_expression "(ulong)pbVar10[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[9]" identifier [ number_literal ])) + (subscript_expression "pbVar10[8]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar20 = (ulong)pbVar10[10] + lVar5;" (assignment_expression "lVar20 = (ulong)pbVar10[10] + lVar5" identifier = (binary_expression "(ulong)pbVar10[10] + lVar5" (cast_expression "(ulong)pbVar10[10]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[10]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar18 = (ulong)pbVar10[0xb] + lVar20;" (assignment_expression "lVar18 = (ulong)pbVar10[0xb] + lVar20" identifier = (binary_expression "(ulong)pbVar10[0xb] + lVar20" (cast_expression "(ulong)pbVar10[0xb]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xb]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar9 = (ulong)pbVar10[0xc] + lVar18;" (assignment_expression "lVar9 = (ulong)pbVar10[0xc] + lVar18" identifier = (binary_expression "(ulong)pbVar10[0xc] + lVar18" (cast_expression "(ulong)pbVar10[0xc]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xc]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar7 = (ulong)pbVar10[0xd] + lVar9;" (assignment_expression "lVar7 = (ulong)pbVar10[0xd] + lVar9" identifier = (binary_expression "(ulong)pbVar10[0xd] + lVar9" (cast_expression "(ulong)pbVar10[0xd]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xd]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "lVar17 = (ulong)pbVar10[0xe] + lVar7;" (assignment_expression "lVar17 = (ulong)pbVar10[0xe] + lVar7" identifier = (binary_expression "(ulong)pbVar10[0xe] + lVar7" (cast_expression "(ulong)pbVar10[0xe]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xe]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar2 = (ulong)pbVar10[0xf] + lVar17;" (assignment_expression "uVar2 = (ulong)pbVar10[0xf] + lVar17" identifier = (binary_expression "(ulong)pbVar10[0xf] + lVar17" (cast_expression "(ulong)pbVar10[0xf]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "pbVar10[0xf]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;" (assignment_expression "uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2" identifier = (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8]" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1" (parenthesized_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)" ( (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1" (binary_expression "uVar3 + *pbVar10 + uVar13" (binary_expression "uVar3 + *pbVar10" identifier + (pointer_expression "*pbVar10" * identifier)) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) )) % number_literal) + (subscript_expression "pbVar10[8]" identifier [ number_literal ])) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (expression_statement "pbVar10 = pbVar12;" (assignment_expression "pbVar10 = pbVar12" identifier = identifier) ;) (expression_statement "uVar13 = uVar2 - 0xfff1;" (assignment_expression "uVar13 = uVar2 - 0xfff1" identifier = (binary_expression "uVar2 - 0xfff1" identifier - number_literal)) ;) (if_statement "if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }" if (parenthesized_expression "(uVar2 < 0xfff1)" ( (binary_expression "uVar2 < 0xfff1" identifier < number_literal) )) (compound_statement "{\n        uVar13 = uVar2;\n      }" { (expression_statement "uVar13 = uVar2;" (assignment_expression "uVar13 = uVar2" identifier = identifier) ;) })) })) (if_statement "if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }" if (parenthesized_expression "(0xfff0 < uVar13)" ( (binary_expression "0xfff0 < uVar13" number_literal < identifier) )) (compound_statement "{\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }" { (labeled_statement "LAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);" statement_identifier : (expression_statement "crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);" (call_expression "crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b)" identifier (argument_list "("s1 < _adler32_base","src/misc/adler32.c",0x4b)" ( (string_literal ""s1 < _adler32_base"" " string_content ") , (string_literal ""src/misc/adler32.c"" " string_content ") , number_literal ))) ;)) })) }))) (expression_statement "*param_1 = (ushort)uVar13;" (assignment_expression "*param_1 = (ushort)uVar13" (pointer_expression "*param_1" * identifier) = (cast_expression "(ushort)uVar13" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "param_1[1] = (ushort)uVar3;" (assignment_expression "param_1[1] = (ushort)uVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(ushort)uVar3" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (pointer_expression * IDENT)) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (pointer_expression * IDENT)) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT % LIT)) , (binary_expression IDENT != IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (pointer_expression * IDENT)) + IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (pointer_expression * IDENT)) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) )) % LIT) + (subscript_expression IDENT [ LIT ])) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;)) })) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return ;) })))
(function_definition "void adler32_update(ushort *param_1,byte *param_2,byte *param_3)\n\n{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar12;\n  ulong uVar13;\n  ulong uVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  byte *pbVar11;\n  \n  if (param_1 == (ushort *)0x0) {\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (param_2 == (byte *)0x0) {\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar13 = (ulong)*param_1;\n  uVar3 = (ulong)param_1[1];\n  pbVar12 = param_3;\n  pbVar10 = param_2;\n  pbVar11 = param_2;\n  if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  *param_1 = (ushort)uVar13;\n  param_1[1] = (ushort)uVar3;\n  return;\n}" (primitive_type "void") (function_declarator "adler32_update(ushort *param_1,byte *param_2,byte *param_3)" (identifier "adler32_update") (parameter_list "(ushort *param_1,byte *param_2,byte *param_3)" (( "(") (parameter_declaration "ushort *param_1" (type_identifier "ushort") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  byte *pbVar10;\n  byte *pbVar12;\n  ulong uVar13;\n  ulong uVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  long lVar19;\n  long lVar20;\n  byte *pbVar11;\n  \n  if (param_1 == (ushort *)0x0) {\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }\n  if (param_2 == (byte *)0x0) {\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }\n  uVar13 = (ulong)*param_1;\n  uVar3 = (ulong)param_1[1];\n  pbVar12 = param_3;\n  pbVar10 = param_2;\n  pbVar11 = param_2;\n  if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }\n  if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }\n  *param_1 = (ushort)uVar13;\n  param_1[1] = (ushort)uVar3;\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "long lVar17;" (sized_type_specifier "long" (long "long")) (identifier "lVar17") (; ";")) (declaration "long lVar18;" (sized_type_specifier "long" (long "long")) (identifier "lVar18") (; ";")) (declaration "long lVar19;" (sized_type_specifier "long" (long "long")) (identifier "lVar19") (; ";")) (declaration "long lVar20;" (sized_type_specifier "long" (long "long")) (identifier "lVar20") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (if_statement "if (param_1 == (ushort *)0x0) {\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }" (if "if") (parenthesized_expression "(param_1 == (ushort *)0x0)" (( "(") (binary_expression "param_1 == (ushort *)0x0" (identifier "param_1") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);\n  }" ({ "{") (expression_statement "crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);" (call_expression "crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20)" (identifier "crypt_argchk") (argument_list "("ctx != NULL","src/misc/adler32.c",0x20)" (( "(") (string_literal ""ctx != NULL"" (" """) (string_content "ctx != NULL") (" """)) (, ",") (string_literal ""src/misc/adler32.c"" (" """) (string_content "src/misc/adler32.c") (" """)) (, ",") (number_literal "0x20") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == (byte *)0x0) {\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x0)" (( "(") (binary_expression "param_2 == (byte *)0x0" (identifier "param_2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);\n  }" ({ "{") (expression_statement "crypt_argchk("input != NULL","src/misc/adler32.c",0x21);" (call_expression "crypt_argchk("input != NULL","src/misc/adler32.c",0x21)" (identifier "crypt_argchk") (argument_list "("input != NULL","src/misc/adler32.c",0x21)" (( "(") (string_literal ""input != NULL"" (" """) (string_content "input != NULL") (" """)) (, ",") (string_literal ""src/misc/adler32.c"" (" """) (string_content "src/misc/adler32.c") (" """)) (, ",") (number_literal "0x21") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = (ulong)*param_1;" (assignment_expression "uVar13 = (ulong)*param_1" (identifier "uVar13") (= "=") (binary_expression "(ulong)*param_1" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar3 = (ulong)param_1[1];" (assignment_expression "uVar3 = (ulong)param_1[1]" (identifier "uVar3") (= "=") (cast_expression "(ulong)param_1[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pbVar12 = param_3;" (assignment_expression "pbVar12 = param_3" (identifier "pbVar12") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pbVar10 = param_2;" (assignment_expression "pbVar10 = param_2" (identifier "pbVar10") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar11 = param_2;" (assignment_expression "pbVar11 = param_2" (identifier "pbVar11") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (((ulong)param_3 & 7) != 0) {\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }" (if "if") (parenthesized_expression "(((ulong)param_3 & 7) != 0)" (( "(") (binary_expression "((ulong)param_3 & 7) != 0" (parenthesized_expression "((ulong)param_3 & 7)" (( "(") (binary_expression "(ulong)param_3 & 7" (cast_expression "(ulong)param_3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_3")) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);\n    if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }\n    uVar3 = uVar3 % 0xfff1;\n  }" ({ "{") (do_statement "do {\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    } while (((ulong)pbVar12 & 7) != 0);" (do "do") (compound_statement "{\n      pbVar10 = pbVar11 + 1;\n      uVar13 = uVar13 + *pbVar11;\n      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);\n      uVar3 = uVar3 + uVar13;\n      pbVar11 = pbVar10;\n    }" ({ "{") (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar13 = uVar13 + *pbVar11;" (assignment_expression "uVar13 = uVar13 + *pbVar11" (identifier "uVar13") (= "=") (binary_expression "uVar13 + *pbVar11" (identifier "uVar13") (+ "+") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);" (assignment_expression "pbVar12 = param_2 + ((long)param_3 - (long)pbVar10)" (identifier "pbVar12") (= "=") (binary_expression "param_2 + ((long)param_3 - (long)pbVar10)" (identifier "param_2") (+ "+") (parenthesized_expression "((long)param_3 - (long)pbVar10)" (( "(") (binary_expression "(long)param_3 - (long)pbVar10" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (- "-") (cast_expression "(long)pbVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar10"))) () ")")))) (; ";")) (expression_statement "uVar3 = uVar3 + uVar13;" (assignment_expression "uVar3 = uVar3 + uVar13" (identifier "uVar3") (= "=") (binary_expression "uVar3 + uVar13" (identifier "uVar3") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" (identifier "pbVar11") (= "=") (identifier "pbVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((ulong)pbVar12 & 7) != 0)" (( "(") (binary_expression "((ulong)pbVar12 & 7) != 0" (parenthesized_expression "((ulong)pbVar12 & 7)" (( "(") (binary_expression "(ulong)pbVar12 & 7" (cast_expression "(ulong)pbVar12" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar12")) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (0xfff0 < uVar13) {\n      uVar13 = uVar13 - 0xfff1;\n    }" (if "if") (parenthesized_expression "(0xfff0 < uVar13)" (( "(") (binary_expression "0xfff0 < uVar13" (number_literal "0xfff0") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n      uVar13 = uVar13 - 0xfff1;\n    }" ({ "{") (expression_statement "uVar13 = uVar13 - 0xfff1;" (assignment_expression "uVar13 = uVar13 - 0xfff1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 0xfff1" (identifier "uVar13") (- "-") (number_literal "0xfff1"))) (; ";")) (} "}"))) (expression_statement "uVar3 = uVar3 % 0xfff1;" (assignment_expression "uVar3 = uVar3 % 0xfff1" (identifier "uVar3") (= "=") (binary_expression "uVar3 % 0xfff1" (identifier "uVar3") (% "%") (number_literal "0xfff1"))) (; ";")) (} "}"))) (if_statement "if (pbVar12 == (byte *)0x0) {\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }\n  else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" (if "if") (parenthesized_expression "(pbVar12 == (byte *)0x0)" (( "(") (binary_expression "pbVar12 == (byte *)0x0" (identifier "pbVar12") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (0xfff0 < uVar13) goto LAB_00162ba2;\n    if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }\n  }" ({ "{") (if_statement "if (0xfff0 < uVar13) goto LAB_00162ba2;" (if "if") (parenthesized_expression "(0xfff0 < uVar13)" (( "(") (binary_expression "0xfff0 < uVar13" (number_literal "0xfff0") (< "<") (identifier "uVar13")) () ")")) (goto_statement "goto LAB_00162ba2;" (goto "goto") (statement_identifier "LAB_00162ba2") (; ";"))) (if_statement "if (0xfff0 < uVar3) {\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }" (if "if") (parenthesized_expression "(0xfff0 < uVar3)" (( "(") (binary_expression "0xfff0 < uVar3" (number_literal "0xfff0") (< "<") (identifier "uVar3")) () ")")) (compound_statement "{\n                    \n      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);\n    }" ({ "{") (expression_statement "crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);" (call_expression "crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c)" (identifier "crypt_argchk") (argument_list "("s2 < _adler32_base","src/misc/adler32.c",0x4c)" (( "(") (string_literal ""s2 < _adler32_base"" (" """) (string_content "s2 < _adler32_base") (" """)) (, ",") (string_literal ""src/misc/adler32.c"" (" """) (string_content "src/misc/adler32.c") (" """)) (, ",") (number_literal "0x4c") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" (else "else") (compound_statement "{\n    pbVar11 = pbVar10 + (long)pbVar12;\n    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;\n    pbVar12 = pbVar10 + 8;\n    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n    lVar1 = (ulong)pbVar10[2] + lVar19;\n    lVar6 = (ulong)pbVar10[3] + lVar1;\n    lVar8 = (ulong)pbVar10[4] + lVar6;\n    lVar15 = (ulong)pbVar10[5] + lVar8;\n    lVar16 = (ulong)pbVar10[6] + lVar15;\n    uVar14 = (ulong)pbVar10[7] + lVar16;\n    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;\n    pbVar10 = pbVar12;\n    uVar13 = uVar14;\n    if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }\n    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }\n    if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }\n  }" ({ "{") (expression_statement "pbVar11 = pbVar10 + (long)pbVar12;" (assignment_expression "pbVar11 = pbVar10 + (long)pbVar12" (identifier "pbVar11") (= "=") (binary_expression "pbVar10 + (long)pbVar12" (identifier "pbVar10") (+ "+") (cast_expression "(long)pbVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar12")))) (; ";")) (if_statement "if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;" (if "if") (parenthesized_expression "(((ulong)pbVar12 & 8) == 0)" (( "(") (binary_expression "((ulong)pbVar12 & 8) == 0" (parenthesized_expression "((ulong)pbVar12 & 8)" (( "(") (binary_expression "(ulong)pbVar12 & 8" (cast_expression "(ulong)pbVar12" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar12")) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00162a10;" (goto "goto") (statement_identifier "LAB_00162a10") (; ";"))) (expression_statement "pbVar12 = pbVar10 + 8;" (assignment_expression "pbVar12 = pbVar10 + 8" (identifier "pbVar12") (= "=") (binary_expression "pbVar10 + 8" (identifier "pbVar10") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" (assignment_expression "lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13" (identifier "lVar19") (= "=") (binary_expression "(ulong)pbVar10[1] + *pbVar10 + uVar13" (binary_expression "(ulong)pbVar10[1] + *pbVar10" (cast_expression "(ulong)pbVar10[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]"))) (+ "+") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "lVar1 = (ulong)pbVar10[2] + lVar19;" (assignment_expression "lVar1 = (ulong)pbVar10[2] + lVar19" (identifier "lVar1") (= "=") (binary_expression "(ulong)pbVar10[2] + lVar19" (cast_expression "(ulong)pbVar10[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]"))) (+ "+") (identifier "lVar19"))) (; ";")) (expression_statement "lVar6 = (ulong)pbVar10[3] + lVar1;" (assignment_expression "lVar6 = (ulong)pbVar10[3] + lVar1" (identifier "lVar6") (= "=") (binary_expression "(ulong)pbVar10[3] + lVar1" (cast_expression "(ulong)pbVar10[3]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[3]" (identifier "pbVar10") ([ "[") (number_literal "3") (] "]"))) (+ "+") (identifier "lVar1"))) (; ";")) (expression_statement "lVar8 = (ulong)pbVar10[4] + lVar6;" (assignment_expression "lVar8 = (ulong)pbVar10[4] + lVar6" (identifier "lVar8") (= "=") (binary_expression "(ulong)pbVar10[4] + lVar6" (cast_expression "(ulong)pbVar10[4]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[4]" (identifier "pbVar10") ([ "[") (number_literal "4") (] "]"))) (+ "+") (identifier "lVar6"))) (; ";")) (expression_statement "lVar15 = (ulong)pbVar10[5] + lVar8;" (assignment_expression "lVar15 = (ulong)pbVar10[5] + lVar8" (identifier "lVar15") (= "=") (binary_expression "(ulong)pbVar10[5] + lVar8" (cast_expression "(ulong)pbVar10[5]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[5]" (identifier "pbVar10") ([ "[") (number_literal "5") (] "]"))) (+ "+") (identifier "lVar8"))) (; ";")) (expression_statement "lVar16 = (ulong)pbVar10[6] + lVar15;" (assignment_expression "lVar16 = (ulong)pbVar10[6] + lVar15" (identifier "lVar16") (= "=") (binary_expression "(ulong)pbVar10[6] + lVar15" (cast_expression "(ulong)pbVar10[6]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[6]" (identifier "pbVar10") ([ "[") (number_literal "6") (] "]"))) (+ "+") (identifier "lVar15"))) (; ";")) (expression_statement "uVar14 = (ulong)pbVar10[7] + lVar16;" (assignment_expression "uVar14 = (ulong)pbVar10[7] + lVar16" (identifier "uVar14") (= "=") (binary_expression "(ulong)pbVar10[7] + lVar16" (cast_expression "(ulong)pbVar10[7]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[7]" (identifier "pbVar10") ([ "[") (number_literal "7") (] "]"))) (+ "+") (identifier "lVar16"))) (; ";")) (expression_statement "uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;" (assignment_expression "uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14" (identifier "uVar3") (= "=") (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar19" (binary_expression "uVar3 + *pbVar10 + uVar13" (binary_expression "uVar3 + *pbVar10" (identifier "uVar3") (+ "+") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (+ "+") (identifier "uVar13")) (+ "+") (identifier "lVar19")) (+ "+") (identifier "lVar1")) (+ "+") (identifier "lVar6")) (+ "+") (identifier "lVar8")) (+ "+") (identifier "lVar15")) (+ "+") (identifier "lVar16")) (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "pbVar10 = pbVar12;" (assignment_expression "pbVar10 = pbVar12" (identifier "pbVar10") (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" (identifier "uVar13") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (0xfff0 < uVar14) {\n      uVar13 = uVar14 - 0xfff1;\n    }" (if "if") (parenthesized_expression "(0xfff0 < uVar14)" (( "(") (binary_expression "0xfff0 < uVar14" (number_literal "0xfff0") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n      uVar13 = uVar14 - 0xfff1;\n    }" ({ "{") (expression_statement "uVar13 = uVar14 - 0xfff1;" (assignment_expression "uVar13 = uVar14 - 0xfff1" (identifier "uVar13") (= "=") (binary_expression "uVar14 - 0xfff1" (identifier "uVar14") (- "-") (number_literal "0xfff1"))) (; ";")) (} "}"))) (while_statement "while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }" (while "while") (parenthesized_expression "(uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11)" (( "(") (comma_expression "uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11" (assignment_expression "uVar3 = uVar3 % 0xfff1" (identifier "uVar3") (= "=") (binary_expression "uVar3 % 0xfff1" (identifier "uVar3") (% "%") (number_literal "0xfff1"))) (, ",") (binary_expression "pbVar10 != pbVar11" (identifier "pbVar10") (!= "!=") (identifier "pbVar11"))) () ")")) (compound_statement "{\nLAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;\n      lVar19 = (ulong)pbVar10[2] + lVar1;\n      lVar8 = (ulong)pbVar10[3] + lVar19;\n      lVar6 = (ulong)pbVar10[4] + lVar8;\n      lVar16 = (ulong)pbVar10[5] + lVar6;\n      lVar15 = (ulong)pbVar10[6] + lVar16;\n      uVar4 = (ulong)pbVar10[7] + lVar15;\n      uVar14 = uVar4 - 0xfff1;\n      if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }\n      pbVar12 = pbVar10 + 0x10;\n      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;\n      lVar20 = (ulong)pbVar10[10] + lVar5;\n      lVar18 = (ulong)pbVar10[0xb] + lVar20;\n      lVar9 = (ulong)pbVar10[0xc] + lVar18;\n      lVar7 = (ulong)pbVar10[0xd] + lVar9;\n      lVar17 = (ulong)pbVar10[0xe] + lVar7;\n      uVar2 = (ulong)pbVar10[0xf] + lVar17;\n      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;\n      pbVar10 = pbVar12;\n      uVar13 = uVar2 - 0xfff1;\n      if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }\n    }" ({ "{") (labeled_statement "LAB_00162a10:\n      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" (statement_identifier "LAB_00162a10") (: ":") (expression_statement "lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;" (assignment_expression "lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13" (identifier "lVar1") (= "=") (binary_expression "(ulong)pbVar10[1] + *pbVar10 + uVar13" (binary_expression "(ulong)pbVar10[1] + *pbVar10" (cast_expression "(ulong)pbVar10[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[1]" (identifier "pbVar10") ([ "[") (number_literal "1") (] "]"))) (+ "+") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (+ "+") (identifier "uVar13"))) (; ";"))) (expression_statement "lVar19 = (ulong)pbVar10[2] + lVar1;" (assignment_expression "lVar19 = (ulong)pbVar10[2] + lVar1" (identifier "lVar19") (= "=") (binary_expression "(ulong)pbVar10[2] + lVar1" (cast_expression "(ulong)pbVar10[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[2]" (identifier "pbVar10") ([ "[") (number_literal "2") (] "]"))) (+ "+") (identifier "lVar1"))) (; ";")) (expression_statement "lVar8 = (ulong)pbVar10[3] + lVar19;" (assignment_expression "lVar8 = (ulong)pbVar10[3] + lVar19" (identifier "lVar8") (= "=") (binary_expression "(ulong)pbVar10[3] + lVar19" (cast_expression "(ulong)pbVar10[3]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[3]" (identifier "pbVar10") ([ "[") (number_literal "3") (] "]"))) (+ "+") (identifier "lVar19"))) (; ";")) (expression_statement "lVar6 = (ulong)pbVar10[4] + lVar8;" (assignment_expression "lVar6 = (ulong)pbVar10[4] + lVar8" (identifier "lVar6") (= "=") (binary_expression "(ulong)pbVar10[4] + lVar8" (cast_expression "(ulong)pbVar10[4]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[4]" (identifier "pbVar10") ([ "[") (number_literal "4") (] "]"))) (+ "+") (identifier "lVar8"))) (; ";")) (expression_statement "lVar16 = (ulong)pbVar10[5] + lVar6;" (assignment_expression "lVar16 = (ulong)pbVar10[5] + lVar6" (identifier "lVar16") (= "=") (binary_expression "(ulong)pbVar10[5] + lVar6" (cast_expression "(ulong)pbVar10[5]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[5]" (identifier "pbVar10") ([ "[") (number_literal "5") (] "]"))) (+ "+") (identifier "lVar6"))) (; ";")) (expression_statement "lVar15 = (ulong)pbVar10[6] + lVar16;" (assignment_expression "lVar15 = (ulong)pbVar10[6] + lVar16" (identifier "lVar15") (= "=") (binary_expression "(ulong)pbVar10[6] + lVar16" (cast_expression "(ulong)pbVar10[6]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[6]" (identifier "pbVar10") ([ "[") (number_literal "6") (] "]"))) (+ "+") (identifier "lVar16"))) (; ";")) (expression_statement "uVar4 = (ulong)pbVar10[7] + lVar15;" (assignment_expression "uVar4 = (ulong)pbVar10[7] + lVar15" (identifier "uVar4") (= "=") (binary_expression "(ulong)pbVar10[7] + lVar15" (cast_expression "(ulong)pbVar10[7]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[7]" (identifier "pbVar10") ([ "[") (number_literal "7") (] "]"))) (+ "+") (identifier "lVar15"))) (; ";")) (expression_statement "uVar14 = uVar4 - 0xfff1;" (assignment_expression "uVar14 = uVar4 - 0xfff1" (identifier "uVar14") (= "=") (binary_expression "uVar4 - 0xfff1" (identifier "uVar4") (- "-") (number_literal "0xfff1"))) (; ";")) (if_statement "if (uVar4 < 0xfff1) {\n        uVar14 = uVar4;\n      }" (if "if") (parenthesized_expression "(uVar4 < 0xfff1)" (( "(") (binary_expression "uVar4 < 0xfff1" (identifier "uVar4") (< "<") (number_literal "0xfff1")) () ")")) (compound_statement "{\n        uVar14 = uVar4;\n      }" ({ "{") (expression_statement "uVar14 = uVar4;" (assignment_expression "uVar14 = uVar4" (identifier "uVar14") (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "pbVar12 = pbVar10 + 0x10;" (assignment_expression "pbVar12 = pbVar10 + 0x10" (identifier "pbVar12") (= "=") (binary_expression "pbVar10 + 0x10" (identifier "pbVar10") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;" (assignment_expression "lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14" (identifier "lVar5") (= "=") (binary_expression "(ulong)pbVar10[9] + pbVar10[8] + uVar14" (binary_expression "(ulong)pbVar10[9] + pbVar10[8]" (cast_expression "(ulong)pbVar10[9]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[9]" (identifier "pbVar10") ([ "[") (number_literal "9") (] "]"))) (+ "+") (subscript_expression "pbVar10[8]" (identifier "pbVar10") ([ "[") (number_literal "8") (] "]"))) (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "lVar20 = (ulong)pbVar10[10] + lVar5;" (assignment_expression "lVar20 = (ulong)pbVar10[10] + lVar5" (identifier "lVar20") (= "=") (binary_expression "(ulong)pbVar10[10] + lVar5" (cast_expression "(ulong)pbVar10[10]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[10]" (identifier "pbVar10") ([ "[") (number_literal "10") (] "]"))) (+ "+") (identifier "lVar5"))) (; ";")) (expression_statement "lVar18 = (ulong)pbVar10[0xb] + lVar20;" (assignment_expression "lVar18 = (ulong)pbVar10[0xb] + lVar20" (identifier "lVar18") (= "=") (binary_expression "(ulong)pbVar10[0xb] + lVar20" (cast_expression "(ulong)pbVar10[0xb]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[0xb]" (identifier "pbVar10") ([ "[") (number_literal "0xb") (] "]"))) (+ "+") (identifier "lVar20"))) (; ";")) (expression_statement "lVar9 = (ulong)pbVar10[0xc] + lVar18;" (assignment_expression "lVar9 = (ulong)pbVar10[0xc] + lVar18" (identifier "lVar9") (= "=") (binary_expression "(ulong)pbVar10[0xc] + lVar18" (cast_expression "(ulong)pbVar10[0xc]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[0xc]" (identifier "pbVar10") ([ "[") (number_literal "0xc") (] "]"))) (+ "+") (identifier "lVar18"))) (; ";")) (expression_statement "lVar7 = (ulong)pbVar10[0xd] + lVar9;" (assignment_expression "lVar7 = (ulong)pbVar10[0xd] + lVar9" (identifier "lVar7") (= "=") (binary_expression "(ulong)pbVar10[0xd] + lVar9" (cast_expression "(ulong)pbVar10[0xd]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[0xd]" (identifier "pbVar10") ([ "[") (number_literal "0xd") (] "]"))) (+ "+") (identifier "lVar9"))) (; ";")) (expression_statement "lVar17 = (ulong)pbVar10[0xe] + lVar7;" (assignment_expression "lVar17 = (ulong)pbVar10[0xe] + lVar7" (identifier "lVar17") (= "=") (binary_expression "(ulong)pbVar10[0xe] + lVar7" (cast_expression "(ulong)pbVar10[0xe]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[0xe]" (identifier "pbVar10") ([ "[") (number_literal "0xe") (] "]"))) (+ "+") (identifier "lVar7"))) (; ";")) (expression_statement "uVar2 = (ulong)pbVar10[0xf] + lVar17;" (assignment_expression "uVar2 = (ulong)pbVar10[0xf] + lVar17" (identifier "uVar2") (= "=") (binary_expression "(ulong)pbVar10[0xf] + lVar17" (cast_expression "(ulong)pbVar10[0xf]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "pbVar10[0xf]" (identifier "pbVar10") ([ "[") (number_literal "0xf") (] "]"))) (+ "+") (identifier "lVar17"))) (; ";")) (expression_statement "uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;" (assignment_expression "uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2" (identifier "uVar3") (= "=") (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5 + lVar20" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14 + lVar5" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8] + uVar14" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1 +\n              pbVar10[8]" (binary_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)\n              % 0xfff1" (parenthesized_expression "(uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)" (( "(") (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19" (binary_expression "uVar3 + *pbVar10 + uVar13 + lVar1" (binary_expression "uVar3 + *pbVar10 + uVar13" (binary_expression "uVar3 + *pbVar10" (identifier "uVar3") (+ "+") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (+ "+") (identifier "uVar13")) (+ "+") (identifier "lVar1")) (+ "+") (identifier "lVar19")) (+ "+") (identifier "lVar8")) (+ "+") (identifier "lVar6")) (+ "+") (identifier "lVar16")) (+ "+") (identifier "lVar15")) (+ "+") (identifier "uVar4")) () ")")) (% "%") (number_literal "0xfff1")) (+ "+") (subscript_expression "pbVar10[8]" (identifier "pbVar10") ([ "[") (number_literal "8") (] "]"))) (+ "+") (identifier "uVar14")) (+ "+") (identifier "lVar5")) (+ "+") (identifier "lVar20")) (+ "+") (identifier "lVar18")) (+ "+") (identifier "lVar9")) (+ "+") (identifier "lVar7")) (+ "+") (identifier "lVar17")) (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "pbVar10 = pbVar12;" (assignment_expression "pbVar10 = pbVar12" (identifier "pbVar10") (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "uVar13 = uVar2 - 0xfff1;" (assignment_expression "uVar13 = uVar2 - 0xfff1" (identifier "uVar13") (= "=") (binary_expression "uVar2 - 0xfff1" (identifier "uVar2") (- "-") (number_literal "0xfff1"))) (; ";")) (if_statement "if (uVar2 < 0xfff1) {\n        uVar13 = uVar2;\n      }" (if "if") (parenthesized_expression "(uVar2 < 0xfff1)" (( "(") (binary_expression "uVar2 < 0xfff1" (identifier "uVar2") (< "<") (number_literal "0xfff1")) () ")")) (compound_statement "{\n        uVar13 = uVar2;\n      }" ({ "{") (expression_statement "uVar13 = uVar2;" (assignment_expression "uVar13 = uVar2" (identifier "uVar13") (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (0xfff0 < uVar13) {\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }" (if "if") (parenthesized_expression "(0xfff0 < uVar13)" (( "(") (binary_expression "0xfff0 < uVar13" (number_literal "0xfff0") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\nLAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);\n    }" ({ "{") (labeled_statement "LAB_00162ba2:\n                    \n      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);" (statement_identifier "LAB_00162ba2") (: ":") (expression_statement "crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);" (call_expression "crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b)" (identifier "crypt_argchk") (argument_list "("s1 < _adler32_base","src/misc/adler32.c",0x4b)" (( "(") (string_literal ""s1 < _adler32_base"" (" """) (string_content "s1 < _adler32_base") (" """)) (, ",") (string_literal ""src/misc/adler32.c"" (" """) (string_content "src/misc/adler32.c") (" """)) (, ",") (number_literal "0x4b") () ")"))) (; ";"))) (} "}"))) (} "}")))) (expression_statement "*param_1 = (ushort)uVar13;" (assignment_expression "*param_1 = (ushort)uVar13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(ushort)uVar13" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar13"))) (; ";")) (expression_statement "param_1[1] = (ushort)uVar3;" (assignment_expression "param_1[1] = (ushort)uVar3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(ushort)uVar3" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar3"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *var_1,type_2 *var_3,type_3 var_4)

{
  long var_11;
  type_3 var_24;
  type_3 var_7;
  type_3 var_17;
  long var_18;
  long var_12;
  long var_22;
  long var_13;
  long var_21;
  type_4 *pbVar10;
  type_4 *var_9;
  type_2 *var_8;
  type_3 var_6;
  type_3 var_16;
  long var_14;
  long var_15;
  long var_23;
  long var_20;
  long var_10;
  long var_19;
  type_4 *var_5;
  
  if (var_1 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("ctx != NULL","src/misc/adler32.c",0x20);
  }
  if (var_3 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("input != NULL","src/misc/adler32.c",0x21);
  }
  var_6 = (type_3)var_1->s[0];
  var_7 = (type_3)var_1->s[1];
  var_8 = (type_2 *)var_4;
  var_9 = var_3;
  var_5 = var_3;
  if ((var_4 & 7) != 0) {
    do {
      var_9 = var_5 + 1;
      var_6 = var_6 + *var_5;
      var_8 = var_3 + (var_4 - (long)var_9);
      var_7 = var_7 + var_6;
      var_5 = var_9;
    } while (((type_3)var_8 & 7) != 0);
    if (0xfff0 < var_6) {
      var_6 = var_6 - 0xfff1;
    }
    var_7 = var_7 % 0xfff1;
  }
  if (var_8 == (type_2 *)0x0) {
    if (0xfff0 < var_6) goto LAB_00162ba2;
    if (0xfff0 < var_7) {
                    /* WARNING: Subroutine does not return */
      var_2("s2 < _adler32_base","src/misc/adler32.c",0x4c);
    }
  }
  else {
    var_5 = var_9 + (long)var_8;
    if (((type_3)var_8 & 8) == 0) goto LAB_00162a10;
    pbVar10 = var_9 + 8;
    var_10 = (type_3)var_9[1] + *var_9 + var_6;
    var_11 = (type_3)var_9[2] + var_10;
    var_12 = (type_3)var_9[3] + var_11;
    var_13 = (type_3)var_9[4] + var_12;
    var_14 = (type_3)var_9[5] + var_13;
    var_15 = (type_3)var_9[6] + var_14;
    var_16 = (type_3)var_9[7] + var_15;
    var_7 = var_7 + *var_9 + var_6 + var_10 + var_11 + var_12 + var_13 + var_14 + var_15 + var_16;
    var_9 = pbVar10;
    var_6 = var_16;
    if (0xfff0 < var_16) {
      var_6 = var_16 - 0xfff1;
    }
    while (var_7 = var_7 % 0xfff1, var_9 != var_5) {
LAB_00162a10:
      var_11 = (type_3)var_9[1] + *var_9 + var_6;
      var_10 = (type_3)var_9[2] + var_11;
      var_13 = (type_3)var_9[3] + var_10;
      var_12 = (type_3)var_9[4] + var_13;
      var_15 = (type_3)var_9[5] + var_12;
      var_14 = (type_3)var_9[6] + var_15;
      var_17 = (type_3)var_9[7] + var_14;
      var_16 = var_17 - 0xfff1;
      if (var_17 < 0xfff1) {
        var_16 = var_17;
      }
      pbVar10 = var_9 + 0x10;
      var_18 = (type_3)var_9[9] + var_9[8] + var_16;
      var_19 = (type_3)var_9[10] + var_18;
      var_20 = (type_3)var_9[0xb] + var_19;
      var_21 = (type_3)var_9[0xc] + var_20;
      var_22 = (type_3)var_9[0xd] + var_21;
      var_23 = (type_3)var_9[0xe] + var_22;
      var_24 = (type_3)var_9[0xf] + var_23;
      var_7 = (var_7 + *var_9 + var_6 + var_11 + var_10 + var_13 + var_12 + var_15 + var_14 + var_17)
              % 0xfff1 +
              var_9[8] + var_16 + var_18 + var_19 + var_20 + var_21 + var_22 + var_23 + var_24;
      var_9 = pbVar10;
      var_6 = var_24 - 0xfff1;
      if (var_24 < 0xfff1) {
        var_6 = var_24;
      }
    }
    if (0xfff0 < var_6) {
LAB_00162ba2:
                    /* WARNING: Subroutine does not return */
      var_2("s1 < _adler32_base","src/misc/adler32.c",0x4b);
    }
  }
  var_1->s[0] = (type_5)var_6;
  var_1->s[1] = (type_5)var_7;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (identifier)))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (identifier))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier))) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (return_statement))))

void MASKED(ushort *param_1,byte *param_2,byte *param_3)

{
  long lVar1;
  ulong uVar2;
  ulong uVar3;
  ulong uVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  byte *pbVar10;
  byte *pbVar12;
  ulong uVar13;
  ulong uVar14;
  long lVar15;
  long lVar16;
  long lVar17;
  long lVar18;
  long lVar19;
  long lVar20;
  byte *pbVar11;
  
  if (param_1 == (ushort *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("ctx != NULL","src/misc/adler32.c",0x20);
  }
  if (param_2 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("input != NULL","src/misc/adler32.c",0x21);
  }
  uVar13 = (ulong)*param_1;
  uVar3 = (ulong)param_1[1];
  pbVar12 = param_3;
  pbVar10 = param_2;
  pbVar11 = param_2;
  if (((ulong)param_3 & 7) != 0) {
    do {
      pbVar10 = pbVar11 + 1;
      uVar13 = uVar13 + *pbVar11;
      pbVar12 = param_2 + ((long)param_3 - (long)pbVar10);
      uVar3 = uVar3 + uVar13;
      pbVar11 = pbVar10;
    } while (((ulong)pbVar12 & 7) != 0);
    if (0xfff0 < uVar13) {
      uVar13 = uVar13 - 0xfff1;
    }
    uVar3 = uVar3 % 0xfff1;
  }
  if (pbVar12 == (byte *)0x0) {
    if (0xfff0 < uVar13) goto LAB_00162ba2;
    if (0xfff0 < uVar3) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("s2 < _adler32_base","src/misc/adler32.c",0x4c);
    }
  }
  else {
    pbVar11 = pbVar10 + (long)pbVar12;
    if (((ulong)pbVar12 & 8) == 0) goto LAB_00162a10;
    pbVar12 = pbVar10 + 8;
    lVar19 = (ulong)pbVar10[1] + *pbVar10 + uVar13;
    lVar1 = (ulong)pbVar10[2] + lVar19;
    lVar6 = (ulong)pbVar10[3] + lVar1;
    lVar8 = (ulong)pbVar10[4] + lVar6;
    lVar15 = (ulong)pbVar10[5] + lVar8;
    lVar16 = (ulong)pbVar10[6] + lVar15;
    uVar14 = (ulong)pbVar10[7] + lVar16;
    uVar3 = uVar3 + *pbVar10 + uVar13 + lVar19 + lVar1 + lVar6 + lVar8 + lVar15 + lVar16 + uVar14;
    pbVar10 = pbVar12;
    uVar13 = uVar14;
    if (0xfff0 < uVar14) {
      uVar13 = uVar14 - 0xfff1;
    }
    while (uVar3 = uVar3 % 0xfff1, pbVar10 != pbVar11) {
LAB_00162a10:
      lVar1 = (ulong)pbVar10[1] + *pbVar10 + uVar13;
      lVar19 = (ulong)pbVar10[2] + lVar1;
      lVar8 = (ulong)pbVar10[3] + lVar19;
      lVar6 = (ulong)pbVar10[4] + lVar8;
      lVar16 = (ulong)pbVar10[5] + lVar6;
      lVar15 = (ulong)pbVar10[6] + lVar16;
      uVar4 = (ulong)pbVar10[7] + lVar15;
      uVar14 = uVar4 - 0xfff1;
      if (uVar4 < 0xfff1) {
        uVar14 = uVar4;
      }
      pbVar12 = pbVar10 + 0x10;
      lVar5 = (ulong)pbVar10[9] + pbVar10[8] + uVar14;
      lVar20 = (ulong)pbVar10[10] + lVar5;
      lVar18 = (ulong)pbVar10[0xb] + lVar20;
      lVar9 = (ulong)pbVar10[0xc] + lVar18;
      lVar7 = (ulong)pbVar10[0xd] + lVar9;
      lVar17 = (ulong)pbVar10[0xe] + lVar7;
      uVar2 = (ulong)pbVar10[0xf] + lVar17;
      uVar3 = (uVar3 + *pbVar10 + uVar13 + lVar1 + lVar19 + lVar8 + lVar6 + lVar16 + lVar15 + uVar4)
              % 0xfff1 +
              pbVar10[8] + uVar14 + lVar5 + lVar20 + lVar18 + lVar9 + lVar7 + lVar17 + uVar2;
      pbVar10 = pbVar12;
      uVar13 = uVar2 - 0xfff1;
      if (uVar2 < 0xfff1) {
        uVar13 = uVar2;
      }
    }
    if (0xfff0 < uVar13) {
LAB_00162ba2:
                    /* WARNING: Subroutine does not return */
      crypt_argchk("s1 < _adler32_base","src/misc/adler32.c",0x4b);
    }
  }
  *param_1 = (ushort)uVar13;
  param_1[1] = (ushort)uVar3;
  return;
}

