
int rc4_add_entropy(uchar *in,ulong inlen,prng_state *prng)

{
  uint uVar1;
  uint uVar2;
  byte *pbVar3;
  byte bVar4;
  byte bVar5;
  long lVar6;
  uint uVar7;
  int iVar8;
  long lVar9;
  uint uVar10;
  ulong uVar11;
  ulong uVar12;
  uint uVar13;
  long in_FS_OFFSET;
  uchar buf [256];
  
  lVar6 = *(long *)(in_FS_OFFSET + 0x28);
  if (prng == (prng_state *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);
  }
  if (in == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);
  }
  if (inlen == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);
  }
  if (prng->ready == 0) {
    uVar10 = (prng->field_0).rc4.s.x;
    pbVar3 = in + inlen;
    uVar13 = (uint)inlen & 7;
    if ((inlen & 7) == 0) goto LAB_00187d4f;
    if (uVar13 != 1) {
      uVar7 = uVar10;
      if (uVar13 != 2) {
        if (uVar13 != 3) {
          if (uVar13 != 4) {
            if (uVar13 != 5) {
              if (uVar13 != 6) {
                uVar7 = uVar10 + 1;
                bVar4 = *in;
                in = in + 1;
                (prng->field_0).rc4.s.x = uVar7;
                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =
                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;
              }
              uVar10 = uVar7 + 1;
              bVar4 = *in;
              in = in + 1;
              (prng->field_0).rc4.s.x = uVar10;
              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =
                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;
            }
            uVar7 = uVar10 + 1;
            bVar4 = *in;
            in = in + 1;
            (prng->field_0).rc4.s.x = uVar7;
            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =
                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;
          }
          uVar10 = uVar7 + 1;
          bVar4 = *in;
          in = in + 1;
          (prng->field_0).rc4.s.x = uVar10;
          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =
               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;
        }
        uVar7 = uVar10 + 1;
        bVar4 = *in;
        in = in + 1;
        (prng->field_0).rc4.s.x = uVar7;
        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =
             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;
      }
      uVar10 = uVar7 + 1;
      bVar4 = *in;
      in = in + 1;
      (prng->field_0).rc4.s.x = uVar10;
      (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =
           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;
    }
    bVar4 = *in;
    (prng->field_0).rc4.s.x = uVar10 + 1;
    (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =
         (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;
    uVar10 = uVar10 + 1;
    for (in = in + 1; in != pbVar3; in = in + 8) {
LAB_00187d4f:
      bVar4 = *in;
      (prng->field_0).rc4.s.x = uVar10 + 1;
      (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =
           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;
      bVar4 = in[1];
      uVar13 = uVar10 + 4;
      (prng->field_0).rc4.s.x = uVar10 + 2;
      uVar7 = uVar10 + 5;
      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =
           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;
      bVar4 = in[2];
      (prng->field_0).rc4.s.x = uVar10 + 3;
      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =
           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;
      uVar1 = uVar10 + 6;
      bVar4 = in[3];
      (prng->field_0).rc4.s.x = uVar13;
      (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =
           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;
      uVar2 = uVar10 + 7;
      bVar4 = in[4];
      uVar10 = uVar10 + 8;
      (prng->field_0).rc4.s.x = uVar7;
      (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =
           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;
      bVar4 = in[5];
      (prng->field_0).rc4.s.x = uVar1;
      (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =
           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;
      bVar4 = in[6];
      (prng->field_0).rc4.s.x = uVar2;
      (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =
           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;
      bVar4 = in[7];
      (prng->field_0).rc4.s.x = uVar10;
      (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =
           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;
    }
    iVar8 = 0;
  }
  else {
    iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100);
    if (iVar8 == 0) {
      uVar11 = 0;
      uVar10 = (uint)inlen & 7;
      if ((inlen & 7) == 0) goto LAB_00187ef5;
      if (uVar10 != 1) {
        uVar12 = uVar11;
        if (uVar10 != 2) {
          if (uVar10 != 3) {
            if (uVar10 != 4) {
              if (uVar10 != 5) {
                if (uVar10 != 6) {
                  buf[0] = buf[0] ^ *in;
                }
                uVar12 = (ulong)(uVar10 != 6);
                uVar11 = uVar12 + 1;
                buf[uVar12] = buf[uVar12] ^ in[uVar12];
              }
              uVar12 = uVar11 + 1;
              buf[uVar11] = buf[uVar11] ^ in[uVar11];
            }
            uVar11 = uVar12 + 1;
            buf[uVar12] = buf[uVar12] ^ in[uVar12];
          }
          uVar12 = uVar11 + 1;
          buf[uVar11] = buf[uVar11] ^ in[uVar11];
        }
        uVar11 = uVar12 + 1;
        buf[uVar12] = buf[uVar12] ^ in[uVar12];
      }
      buf[uVar11] = buf[uVar11] ^ in[uVar11];
      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {
LAB_00187ef5:
        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];
        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];
        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];
        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];
        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];
        bVar4 = in[uVar11 + 6];
        bVar5 = in[uVar11 + 7];
        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];
        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;
        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;
      }
      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);
      if (iVar8 == 0) {
        lVar9 = 0xc;
        do {
          rc4_stream_keystream((rc4_state *)prng,buf,0x100);
          lVar9 = lVar9 + -1;
        } while (lVar9 != 0);
        zeromem(buf,0x100);
      }
    }
  }
  if (lVar6 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar8;
}



int rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)

{
  uint uVar1;
  uint uVar2;
  byte *pbVar3;
  byte *pbVar4;
  byte bVar5;
  byte bVar6;
  uint uVar7;
  int iVar8;
  long lVar9;
  uint uVar10;
  ulong uVar11;
  ulong uVar12;
  uint uVar13;
  long in_FS_OFFSET;
  byte local_138 [264];
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_3 == (uint *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);
  }
  if (param_1 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);
  }
  if ((short)param_3[0x113c] == 0) {
    uVar10 = *param_3;
    pbVar3 = param_1 + param_2;
    uVar13 = (uint)param_2 & 7;
    if ((param_2 & 7) == 0) goto LAB_00187d4f;
    if (uVar13 != 1) {
      uVar7 = uVar10;
      if (uVar13 != 2) {
        if (uVar13 != 3) {
          if (uVar13 != 4) {
            if (uVar13 != 5) {
              if (uVar13 != 6) {
                uVar7 = uVar10 + 1;
                bVar5 = *param_1;
                param_1 = param_1 + 1;
                *param_3 = uVar7;
                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
                *pbVar4 = *pbVar4 ^ bVar5;
              }
              uVar10 = uVar7 + 1;
              bVar5 = *param_1;
              param_1 = param_1 + 1;
              *param_3 = uVar10;
              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);
              *pbVar4 = *pbVar4 ^ bVar5;
            }
            uVar7 = uVar10 + 1;
            bVar5 = *param_1;
            param_1 = param_1 + 1;
            *param_3 = uVar7;
            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
            *pbVar4 = *pbVar4 ^ bVar5;
          }
          uVar10 = uVar7 + 1;
          bVar5 = *param_1;
          param_1 = param_1 + 1;
          *param_3 = uVar10;
          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);
          *pbVar4 = *pbVar4 ^ bVar5;
        }
        uVar7 = uVar10 + 1;
        bVar5 = *param_1;
        param_1 = param_1 + 1;
        *param_3 = uVar7;
        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
        *pbVar4 = *pbVar4 ^ bVar5;
      }
      uVar10 = uVar7 + 1;
      bVar5 = *param_1;
      param_1 = param_1 + 1;
      *param_3 = uVar10;
      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
    }
    bVar5 = *param_1;
    *param_3 = uVar10 + 1;
    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
    *pbVar4 = *pbVar4 ^ bVar5;
    uVar10 = uVar10 + 1;
    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {
LAB_00187d4f:
      bVar5 = *param_1;
      *param_3 = uVar10 + 1;
      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[1];
      uVar13 = uVar10 + 4;
      *param_3 = uVar10 + 2;
      uVar7 = uVar10 + 5;
      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[2];
      *param_3 = uVar10 + 3;
      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      uVar1 = uVar10 + 6;
      bVar5 = param_1[3];
      *param_3 = uVar13;
      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      uVar2 = uVar10 + 7;
      bVar5 = param_1[4];
      uVar10 = uVar10 + 8;
      *param_3 = uVar7;
      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[5];
      *param_3 = uVar1;
      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[6];
      *param_3 = uVar2;
      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[7];
      *param_3 = uVar10;
      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
    }
    iVar8 = 0;
  }
  else {
    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);
    if (iVar8 == 0) {
      uVar11 = 0;
      uVar10 = (uint)param_2 & 7;
      if ((param_2 & 7) == 0) goto LAB_00187ef5;
      if (uVar10 != 1) {
        uVar12 = uVar11;
        if (uVar10 != 2) {
          if (uVar10 != 3) {
            if (uVar10 != 4) {
              if (uVar10 != 5) {
                if (uVar10 != 6) {
                  local_138[0] = local_138[0] ^ *param_1;
                }
                uVar12 = (ulong)(uVar10 != 6);
                uVar11 = uVar12 + 1;
                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];
              }
              uVar12 = uVar11 + 1;
              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];
            }
            uVar11 = uVar12 + 1;
            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];
          }
          uVar12 = uVar11 + 1;
          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];
        }
        uVar11 = uVar12 + 1;
        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];
      }
      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];
      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {
LAB_00187ef5:
        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];
        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];
        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];
        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];
        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];
        bVar5 = param_1[uVar11 + 6];
        bVar6 = param_1[uVar11 + 7];
        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];
        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;
        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;
      }
      iVar8 = rc4_stream_setup(param_3,local_138,0x100);
      if (iVar8 == 0) {
        lVar9 = 0xc;
        do {
          rc4_stream_keystream(param_3,local_138,0x100);
          lVar9 = lVar9 + -1;
        } while (lVar9 != 0);
        zeromem(local_138,0x100);
      }
    }
  }
  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar8;
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x110
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x108],RAX
XOR EAX,EAX
TEST RDX,RDX
JZ 0x00188003
MOV RBP,RDI
TEST RDI,RDI
JZ 0x00187feb
MOV R12,RSI
TEST RSI,RSI
JZ 0x00188020
CMP word ptr [RDX + 0x44f0],0x0
MOV RBX,RDX
JNZ 0x00187e30
MOV EAX,dword ptr [RDX]
LEA RSI,[RDI + RSI*0x1]
AND R12D,0x7
JZ 0x00187d4f
CMP R12,0x1
JZ 0x00187d2a
CMP R12,0x2
JZ 0x00187d0e
CMP R12,0x3
JZ 0x00187cf7
CMP R12,0x4
JZ 0x00187cdc
CMP R12,0x5
JZ 0x00187cc0
CMP R12,0x6
JZ 0x00187ca5
LEA EDX,[RAX + 0x1]
MOVZX EAX,AL
MOVZX ECX,byte ptr [RDI]
ADD RBP,0x1
MOV dword ptr [RBX],EDX
XOR byte ptr [RBX + RAX*0x1 + 0x8],CL
MOV EAX,EDX
LEA R8D,[RAX + 0x1]
MOVZX R9D,AL
MOVZX EDI,byte ptr [RBP]
ADD RBP,0x1
MOV dword ptr [RBX],R8D
MOV EAX,R8D
XOR byte ptr [RBX + R9*0x1 + 0x8],DIL
LEA R11D,[RAX + 0x1]
MOVZX R13D,AL
MOVZX R10D,byte ptr [RBP]
ADD RBP,0x1
MOV dword ptr [RBX],R11D
MOV EAX,R11D
XOR byte ptr [RBX + R13*0x1 + 0x8],R10B
LEA R12D,[RAX + 0x1]
MOVZX ECX,AL
MOVZX R14D,byte ptr [RBP]
ADD RBP,0x1
MOV dword ptr [RBX],R12D
MOV EAX,R12D
XOR byte ptr [RBX + RCX*0x1 + 0x8],R14B
LEA EDX,[RAX + 0x1]
MOVZX EAX,AL
MOVZX EDI,byte ptr [RBP]
ADD RBP,0x1
MOV dword ptr [RBX],EDX
XOR byte ptr [RBX + RAX*0x1 + 0x8],DIL
MOV EAX,EDX
LEA R9D,[RAX + 0x1]
MOVZX R10D,AL
MOVZX R8D,byte ptr [RBP]
ADD RBP,0x1
MOV dword ptr [RBX],R9D
MOV EAX,R9D
XOR byte ptr [RBX + R10*0x1 + 0x8],R8B
LEA R13D,[RAX + 0x1]
MOVZX R14D,AL
ADD RBP,0x1
MOVZX R11D,byte ptr [RBP + -0x1]
MOV EAX,R13D
MOV dword ptr [RBX],R13D
XOR byte ptr [RBX + R14*0x1 + 0x8],R11B
CMP RBP,RSI
JZ 0x00187dfd
LEA EDX,[RAX + 0x1]
LEA R8D,[RAX + 0x2]
MOVZX ECX,AL
MOVZX R12D,byte ptr [RBP]
LEA R11D,[RAX + 0x3]
MOV dword ptr [RBX],EDX
MOVZX R9D,DL
MOVZX R13D,R8B
XOR byte ptr [RBX + RCX*0x1 + 0x8],R12B
MOVZX EDX,R11B
MOVZX EDI,byte ptr [RBP + 0x1]
LEA R12D,[RAX + 0x4]
MOV dword ptr [RBX],R8D
LEA R8D,[RAX + 0x5]
MOVZX ECX,R12B
ADD RBP,0x8
XOR byte ptr [RBX + R9*0x1 + 0x8],DIL
MOVZX R10D,byte ptr [RBP + -0x6]
MOV dword ptr [RBX],R11D
MOVZX R11D,R8B
XOR byte ptr [RBX + R13*0x1 + 0x8],R10B
LEA R10D,[RAX + 0x6]
MOVZX R14D,byte ptr [RBP + -0x5]
MOV dword ptr [RBX],R12D
MOVZX R12D,R10B
XOR byte ptr [RBX + RDX*0x1 + 0x8],R14B
LEA R14D,[RAX + 0x7]
MOVZX EDI,byte ptr [RBP + -0x4]
LEA EAX,[RAX + 0x8]
MOV dword ptr [RBX],R8D
MOVZX EDX,R14B
XOR byte ptr [RBX + RCX*0x1 + 0x8],DIL
MOVZX R9D,byte ptr [RBP + -0x3]
MOV dword ptr [RBX],R10D
XOR byte ptr [RBX + R11*0x1 + 0x8],R9B
MOVZX R13D,byte ptr [RBP + -0x2]
MOV dword ptr [RBX],R14D
XOR byte ptr [RBX + R12*0x1 + 0x8],R13B
MOVZX R8D,byte ptr [RBP + -0x1]
MOV dword ptr [RBX],EAX
XOR byte ptr [RBX + RDX*0x1 + 0x8],R8B
CMP RBP,RSI
JNZ 0x00187d4f
XOR R14D,R14D
MOV RSI,qword ptr [RSP + 0x108]
XOR RSI,qword ptr FS:[0x28]
MOV EAX,R14D
JNZ 0x0018801b
ADD RSP,0x110
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV R13,RSP
MOV EDX,0x100
MOV RDI,RBX
MOV RSI,R13
CALL 0x001142d0
MOV R14D,EAX
TEST EAX,EAX
JNZ 0x00187e00
MOV RSI,R12
XOR R9D,R9D
AND ESI,0x7
JZ 0x00187ef5
CMP RSI,0x1
JZ 0x00187eda
CMP RSI,0x2
JZ 0x00187ec8
CMP RSI,0x3
JZ 0x00187eb6
CMP RSI,0x4
JZ 0x00187ea5
CMP RSI,0x5
JZ 0x00187e93
CMP RSI,0x6
JNZ 0x00187fd8
MOVZX R10D,R9B
MOVZX ECX,byte ptr [RBP + R9*0x1]
ADD R9,0x1
XOR byte ptr [RSP + R10*0x1],CL
MOVZX R11D,R9B
MOVZX R8D,byte ptr [RBP + R9*0x1]
ADD R9,0x1
XOR byte ptr [RSP + R11*0x1],R8B
MOVZX EAX,R9B
MOVZX EDX,byte ptr [RBP + R9*0x1]
ADD R9,0x1
XOR byte ptr [RSP + RAX*0x1],DL
MOVZX R14D,R9B
MOVZX ESI,byte ptr [RBP + R9*0x1]
ADD R9,0x1
XOR byte ptr [RSP + R14*0x1],SIL
MOVZX EDI,R9B
MOVZX R10D,byte ptr [RBP + R9*0x1]
ADD R9,0x1
XOR byte ptr [RSP + RDI*0x1],R10B
MOVZX R11D,R9B
MOVZX ECX,byte ptr [RBP + R9*0x1]
ADD R9,0x1
XOR byte ptr [RSP + R11*0x1],CL
CMP R12,R9
JZ 0x00187f8e
LEA RDX,[R9 + 0x1]
MOVZX R8D,R9B
LEA RDI,[R9 + 0x2]
MOVZX EAX,byte ptr [RBP + R9*0x1]
MOVZX R14D,DL
LEA RCX,[R9 + 0x3]
LEA RDX,[R9 + 0x4]
XOR byte ptr [RSP + R8*0x1],AL
MOVZX ESI,byte ptr [RBP + R9*0x1 + 0x1]
MOVZX R10D,DIL
XOR byte ptr [RSP + R14*0x1],SIL
MOVZX R8D,CL
MOVZX R14D,DL
LEA RDI,[R9 + 0x5]
LEA RCX,[R9 + 0x6]
MOVZX R11D,byte ptr [RBP + R9*0x1 + 0x2]
LEA RDX,[R9 + 0x7]
XOR byte ptr [RSP + R10*0x1],R11B
MOVZX EAX,byte ptr [RBP + R9*0x1 + 0x3]
MOVZX R10D,DIL
XOR byte ptr [RSP + R8*0x1],AL
MOVZX ESI,byte ptr [RBP + R9*0x1 + 0x4]
MOVZX R8D,CL
XOR byte ptr [RSP + R14*0x1],SIL
MOVZX R11D,byte ptr [RBP + R9*0x1 + 0x5]
MOVZX R14D,DL
MOVZX EAX,byte ptr [RBP + R9*0x1 + 0x6]
MOVZX ESI,byte ptr [RBP + R9*0x1 + 0x7]
ADD R9,0x8
XOR byte ptr [RSP + R10*0x1],R11B
XOR byte ptr [RSP + R8*0x1],AL
XOR byte ptr [RSP + R14*0x1],SIL
CMP R12,R9
JNZ 0x00187ef5
MOV EDX,0x100
MOV RSI,R13
MOV RDI,RBX
CALL 0x00114540
MOV R14D,EAX
TEST EAX,EAX
JNZ 0x00187e00
MOV EBP,0xc
NOP
MOV EDX,0x100
MOV RSI,R13
MOV RDI,RBX
CALL 0x001142d0
SUB RBP,0x1
JNZ 0x00187fb0
MOV ESI,0x100
MOV RDI,R13
CALL 0x00114e00
JMP 0x00187e00
MOVZX EDI,byte ptr [RBP]
MOV R9D,0x1
XOR byte ptr [RSP],DIL
JMP 0x00187e81
MOV EDX,0x3f
LEA RSI,[0x1c70bf]
LEA RDI,[0x1a8790]
CALL 0x00114270
MOV EDX,0x3e
LEA RSI,[0x1c70bf]
LEA RDI,[0x1bfb0d]
CALL 0x00114270
CALL 0x00113880
MOV EDX,0x40
LEA RSI,[0x1c70bf]
LEA RDI,[0x1c7084]
CALL 0x00114270
(translation_unit "int rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  byte bVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  byte local_138 [264];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (param_1 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }\n  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\n}\n\n" (function_definition "int rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  byte bVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  byte local_138 [264];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (param_1 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }\n  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\n}" primitive_type (function_declarator "rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)" identifier (parameter_list "(byte *param_1,ulong param_2,uint *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  byte bVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  byte local_138 [264];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (param_1 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }\n  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte local_138 [264];" type_identifier (array_declarator "local_138 [264]" identifier [ number_literal ]) ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_3 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }" if (parenthesized_expression "(param_3 == (uint *)0x0)" ( (binary_expression "param_3 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }" { comment (expression_statement "crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);" (call_expression "crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e)" identifier (argument_list "("prng != NULL","src/prngs/rc4.c",0x3e)" ( (string_literal ""prng != NULL"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_1 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (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("in != NULL","src/prngs/rc4.c",0x3f);\n  }" { comment (expression_statement "crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);" (call_expression "crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f)" identifier (argument_list "("in != NULL","src/prngs/rc4.c",0x3f)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }" { comment (expression_statement "crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);" (call_expression "crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40)" identifier (argument_list "("inlen > 0","src/prngs/rc4.c",0x40)" ( (string_literal ""inlen > 0"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" if (parenthesized_expression "((short)param_3[0x113c] == 0)" ( (binary_expression "(short)param_3[0x113c] == 0" (cast_expression "(short)param_3[0x113c]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_3[0x113c]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }" { (expression_statement "uVar10 = *param_3;" (assignment_expression "uVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "pbVar3 = param_1 + param_2;" (assignment_expression "pbVar3 = param_1 + param_2" identifier = (binary_expression "param_1 + param_2" identifier + identifier)) ;) (expression_statement "uVar13 = (uint)param_2 & 7;" (assignment_expression "uVar13 = (uint)param_2 & 7" identifier = (binary_expression "(uint)param_2 & 7" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((param_2 & 7) == 0) goto LAB_00187d4f;" if (parenthesized_expression "((param_2 & 7) == 0)" ( (binary_expression "(param_2 & 7) == 0" (parenthesized_expression "(param_2 & 7)" ( (binary_expression "param_2 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00187d4f;" goto statement_identifier ;)) (if_statement "if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" if (parenthesized_expression "(uVar13 != 1)" ( (binary_expression "uVar13 != 1" identifier != number_literal) )) (compound_statement "{\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" { (expression_statement "uVar7 = uVar10;" (assignment_expression "uVar7 = uVar10" identifier = identifier) ;) (if_statement "if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }" if (parenthesized_expression "(uVar13 != 2)" ( (binary_expression "uVar13 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }" { (if_statement "if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }" if (parenthesized_expression "(uVar13 != 3)" ( (binary_expression "uVar13 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }" { (if_statement "if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }" if (parenthesized_expression "(uVar13 != 4)" ( (binary_expression "uVar13 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }" { (if_statement "if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }" if (parenthesized_expression "(uVar13 != 5)" ( (binary_expression "uVar13 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }" { (if_statement "if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }" if (parenthesized_expression "(uVar13 != 6)" ( (binary_expression "uVar13 != 6" identifier != number_literal) )) (compound_statement "{\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }" { (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_3 = uVar10 + 1;" (assignment_expression "*param_3 = uVar10 + 1" (pointer_expression "*param_3" * identifier) = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (for_statement "for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" for ( (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ; (binary_expression "param_1 != pbVar3" identifier != identifier) ; (assignment_expression "param_1 = param_1 + 8" identifier = (binary_expression "param_1 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" { (labeled_statement "LAB_00187d4f:\n      bVar5 = *param_1;" statement_identifier : (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (expression_statement "*param_3 = uVar10 + 1;" (assignment_expression "*param_3 = uVar10 + 1" (pointer_expression "*param_3" * identifier) = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[1];" (assignment_expression "bVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = uVar10 + 4;" (assignment_expression "uVar13 = uVar10 + 4" identifier = (binary_expression "uVar10 + 4" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar10 + 2;" (assignment_expression "*param_3 = uVar10 + 2" (pointer_expression "*param_3" * identifier) = (binary_expression "uVar10 + 2" identifier + number_literal)) ;) (expression_statement "uVar7 = uVar10 + 5;" (assignment_expression "uVar7 = uVar10 + 5" identifier = (binary_expression "uVar10 + 5" identifier + number_literal)) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" ( (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 1) + 8" (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 1)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(byte)(uVar10 + 1)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar10 + 1)" ( (binary_expression "uVar10 + 1" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[2];" (assignment_expression "bVar5 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar10 + 3;" (assignment_expression "*param_3 = uVar10 + 3" (pointer_expression "*param_3" * identifier) = (binary_expression "uVar10 + 3" identifier + number_literal)) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" ( (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 2) + 8" (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 2)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(byte)(uVar10 + 2)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar10 + 2)" ( (binary_expression "uVar10 + 2" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "uVar1 = uVar10 + 6;" (assignment_expression "uVar1 = uVar10 + 6" identifier = (binary_expression "uVar10 + 6" identifier + number_literal)) ;) (expression_statement "bVar5 = param_1[3];" (assignment_expression "bVar5 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar13;" (assignment_expression "*param_3 = uVar13" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" ( (binary_expression "(long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)(uVar10 + 3) & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((ulong)(uVar10 + 3) & 0xff)" ( (binary_expression "(ulong)(uVar10 + 3) & 0xff" (call_expression "(ulong)(uVar10 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 + 3)" ( (binary_expression "uVar10 + 3" identifier + number_literal) ))) & number_literal) ))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "uVar2 = uVar10 + 7;" (assignment_expression "uVar2 = uVar10 + 7" identifier = (binary_expression "uVar10 + 7" identifier + number_literal)) ;) (expression_statement "bVar5 = param_1[4];" (assignment_expression "bVar5 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = uVar10 + 8;" (assignment_expression "uVar10 = uVar10 + 8" identifier = (binary_expression "uVar10 + 8" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" ( (binary_expression "(long)param_3 + ((ulong)uVar13 & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)uVar13 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((ulong)uVar13 & 0xff)" ( (binary_expression "(ulong)uVar13 & 0xff" (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[5];" (assignment_expression "bVar5 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar1;" (assignment_expression "*param_3 = uVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(byte)uVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(byte)uVar7 + 8)" ( (binary_expression "(long)param_3 + (ulong)(byte)uVar7 + 8" (binary_expression "(long)param_3 + (ulong)(byte)uVar7" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)(byte)uVar7" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[6];" (assignment_expression "bVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar2;" (assignment_expression "*param_3 = uVar2" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(byte)uVar1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(byte)uVar1 + 8)" ( (binary_expression "(long)param_3 + (ulong)(byte)uVar1 + 8" (binary_expression "(long)param_3 + (ulong)(byte)uVar1" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)(byte)uVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[7];" (assignment_expression "bVar5 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" ( (binary_expression "(long)param_3 + ((ulong)uVar2 & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)uVar2 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((ulong)uVar2 & 0xff)" ( (binary_expression "(ulong)uVar2 & 0xff" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" else (compound_statement "{\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" { (expression_statement "iVar8 = rc4_stream_keystream(param_3,local_138,0x100);" (assignment_expression "iVar8 = rc4_stream_keystream(param_3,local_138,0x100)" identifier = (call_expression "rc4_stream_keystream(param_3,local_138,0x100)" identifier (argument_list "(param_3,local_138,0x100)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = (uint)param_2 & 7;" (assignment_expression "uVar10 = (uint)param_2 & 7" identifier = (binary_expression "(uint)param_2 & 7" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((param_2 & 7) == 0) goto LAB_00187ef5;" if (parenthesized_expression "((param_2 & 7) == 0)" ( (binary_expression "(param_2 & 7) == 0" (parenthesized_expression "(param_2 & 7)" ( (binary_expression "param_2 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00187ef5;" goto statement_identifier ;)) (if_statement "if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }" if (parenthesized_expression "(uVar10 != 1)" ( (binary_expression "uVar10 != 1" identifier != number_literal) )) (compound_statement "{\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }" { (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" identifier = identifier) ;) (if_statement "if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }" if (parenthesized_expression "(uVar10 != 2)" ( (binary_expression "uVar10 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }" { (if_statement "if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }" if (parenthesized_expression "(uVar10 != 3)" ( (binary_expression "uVar10 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }" { (if_statement "if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }" if (parenthesized_expression "(uVar10 != 4)" ( (binary_expression "uVar10 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }" { (if_statement "if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }" if (parenthesized_expression "(uVar10 != 5)" ( (binary_expression "uVar10 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }" { (if_statement "if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }" if (parenthesized_expression "(uVar10 != 6)" ( (binary_expression "uVar10 != 6" identifier != number_literal) )) (compound_statement "{\n                  local_138[0] = local_138[0] ^ *param_1;\n                }" { (expression_statement "local_138[0] = local_138[0] ^ *param_1;" (assignment_expression "local_138[0] = local_138[0] ^ *param_1" (subscript_expression "local_138[0]" identifier [ number_literal ]) = (binary_expression "local_138[0] ^ *param_1" (subscript_expression "local_138[0]" identifier [ number_literal ]) ^ (pointer_expression "*param_1" * identifier))) ;) })) (expression_statement "uVar12 = (ulong)(uVar10 != 6);" (assignment_expression "uVar12 = (ulong)(uVar10 != 6)" identifier = (call_expression "(ulong)(uVar10 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 != 6)" ( (binary_expression "uVar10 != 6" identifier != number_literal) )))) ;) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) = (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) = (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar11]" identifier [ identifier ]))) ;) })) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) = (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) = (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar11]" identifier [ identifier ]))) ;) })) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) = (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) = (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar11]" identifier [ identifier ]))) ;) (for_statement "for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }" for ( (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ; (binary_expression "param_2 != uVar11" identifier != identifier) ; (assignment_expression "uVar11 = uVar11 + 8" identifier = (binary_expression "uVar11 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }" { (labeled_statement "LAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];" statement_identifier : (expression_statement "local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11 & 0xff]" identifier [ (binary_expression "uVar11 & 0xff" identifier & number_literal) ]) = (binary_expression "local_138[uVar11 & 0xff] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11 & 0xff]" identifier [ (binary_expression "uVar11 & 0xff" identifier & number_literal) ]) ^ (subscript_expression "param_1[uVar11]" identifier [ identifier ]))) ;)) (expression_statement "local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];" (assignment_expression "local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1]" (subscript_expression "local_138[uVar11 + 1 & 0xff]" identifier [ (binary_expression "uVar11 + 1 & 0xff" (binary_expression "uVar11 + 1" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1]" (subscript_expression "local_138[uVar11 + 1 & 0xff]" identifier [ (binary_expression "uVar11 + 1 & 0xff" (binary_expression "uVar11 + 1" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 1]" identifier [ (binary_expression "uVar11 + 1" identifier + number_literal) ]))) ;) (expression_statement "local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];" (assignment_expression "local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2]" (subscript_expression "local_138[uVar11 + 2 & 0xff]" identifier [ (binary_expression "uVar11 + 2 & 0xff" (binary_expression "uVar11 + 2" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2]" (subscript_expression "local_138[uVar11 + 2 & 0xff]" identifier [ (binary_expression "uVar11 + 2 & 0xff" (binary_expression "uVar11 + 2" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 2]" identifier [ (binary_expression "uVar11 + 2" identifier + number_literal) ]))) ;) (expression_statement "local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];" (assignment_expression "local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3]" (subscript_expression "local_138[uVar11 + 3 & 0xff]" identifier [ (binary_expression "uVar11 + 3 & 0xff" (binary_expression "uVar11 + 3" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3]" (subscript_expression "local_138[uVar11 + 3 & 0xff]" identifier [ (binary_expression "uVar11 + 3 & 0xff" (binary_expression "uVar11 + 3" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 3]" identifier [ (binary_expression "uVar11 + 3" identifier + number_literal) ]))) ;) (expression_statement "local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];" (assignment_expression "local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4]" (subscript_expression "local_138[uVar11 + 4 & 0xff]" identifier [ (binary_expression "uVar11 + 4 & 0xff" (binary_expression "uVar11 + 4" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4]" (subscript_expression "local_138[uVar11 + 4 & 0xff]" identifier [ (binary_expression "uVar11 + 4 & 0xff" (binary_expression "uVar11 + 4" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 4]" identifier [ (binary_expression "uVar11 + 4" identifier + number_literal) ]))) ;) (expression_statement "bVar5 = param_1[uVar11 + 6];" (assignment_expression "bVar5 = param_1[uVar11 + 6]" identifier = (subscript_expression "param_1[uVar11 + 6]" identifier [ (binary_expression "uVar11 + 6" identifier + number_literal) ])) ;) (expression_statement "bVar6 = param_1[uVar11 + 7];" (assignment_expression "bVar6 = param_1[uVar11 + 7]" identifier = (subscript_expression "param_1[uVar11 + 7]" identifier [ (binary_expression "uVar11 + 7" identifier + number_literal) ])) ;) (expression_statement "local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];" (assignment_expression "local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5]" (subscript_expression "local_138[uVar11 + 5 & 0xff]" identifier [ (binary_expression "uVar11 + 5 & 0xff" (binary_expression "uVar11 + 5" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5]" (subscript_expression "local_138[uVar11 + 5 & 0xff]" identifier [ (binary_expression "uVar11 + 5 & 0xff" (binary_expression "uVar11 + 5" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 5]" identifier [ (binary_expression "uVar11 + 5" identifier + number_literal) ]))) ;) (expression_statement "local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;" (assignment_expression "local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5" (subscript_expression "local_138[uVar11 + 6 & 0xff]" identifier [ (binary_expression "uVar11 + 6 & 0xff" (binary_expression "uVar11 + 6" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 6 & 0xff] ^ bVar5" (subscript_expression "local_138[uVar11 + 6 & 0xff]" identifier [ (binary_expression "uVar11 + 6 & 0xff" (binary_expression "uVar11 + 6" identifier + number_literal) & number_literal) ]) ^ identifier)) ;) (expression_statement "local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;" (assignment_expression "local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6" (subscript_expression "local_138[uVar11 + 7 & 0xff]" identifier [ (binary_expression "uVar11 + 7 & 0xff" (binary_expression "uVar11 + 7" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 7 & 0xff] ^ bVar6" (subscript_expression "local_138[uVar11 + 7 & 0xff]" identifier [ (binary_expression "uVar11 + 7 & 0xff" (binary_expression "uVar11 + 7" identifier + number_literal) & number_literal) ]) ^ identifier)) ;) })) (expression_statement "iVar8 = rc4_stream_setup(param_3,local_138,0x100);" (assignment_expression "iVar8 = rc4_stream_setup(param_3,local_138,0x100)" identifier = (call_expression "rc4_stream_setup(param_3,local_138,0x100)" identifier (argument_list "(param_3,local_138,0x100)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }" { (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" identifier = number_literal) ;) (do_statement "do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);" do (compound_statement "{\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        }" { (expression_statement "rc4_stream_keystream(param_3,local_138,0x100);" (call_expression "rc4_stream_keystream(param_3,local_138,0x100)" identifier (argument_list "(param_3,local_138,0x100)" ( identifier , identifier , number_literal ))) ;) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) ;) (expression_statement "zeromem(local_138,0x100);" (call_expression "zeromem(local_138,0x100)" identifier (argument_list "(local_138,0x100)" ( identifier , number_literal ))) ;) })) })) }))) (if_statement "if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_30 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar8;" return identifier ;) })))
(translation_unit "int rc4_add_entropy(uchar *in,ulong inlen,prng_state *prng)\n\n{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte bVar4;\n  byte bVar5;\n  long lVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  uchar buf [256];\n  \n  lVar6 = *(long *)(in_FS_OFFSET + 0x28);\n  if (prng == (prng_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (inlen == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if (prng->ready == 0) {\n    uVar10 = (prng->field_0).rc4.s.x;\n    pbVar3 = in + inlen;\n    uVar13 = (uint)inlen & 7;\n    if ((inlen & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }\n      uVar10 = uVar7 + 1;\n      bVar4 = *in;\n      in = in + 1;\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n    }\n    bVar4 = *in;\n    (prng->field_0).rc4.s.x = uVar10 + 1;\n    (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n         (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n    uVar10 = uVar10 + 1;\n    for (in = in + 1; in != pbVar3; in = in + 8) {\nLAB_00187d4f:\n      bVar4 = *in;\n      (prng->field_0).rc4.s.x = uVar10 + 1;\n      (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[1];\n      uVar13 = uVar10 + 4;\n      (prng->field_0).rc4.s.x = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;\n      bVar4 = in[2];\n      (prng->field_0).rc4.s.x = uVar10 + 3;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;\n      uVar1 = uVar10 + 6;\n      bVar4 = in[3];\n      (prng->field_0).rc4.s.x = uVar13;\n      (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;\n      uVar2 = uVar10 + 7;\n      bVar4 = in[4];\n      uVar10 = uVar10 + 8;\n      (prng->field_0).rc4.s.x = uVar7;\n      (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[5];\n      (prng->field_0).rc4.s.x = uVar1;\n      (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;\n      bVar4 = in[6];\n      (prng->field_0).rc4.s.x = uVar2;\n      (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;\n      bVar4 = in[7];\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)inlen & 7;\n      if ((inlen & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }\n      buf[uVar11] = buf[uVar11] ^ in[uVar11];\n      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }\n      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }\n    }\n  }\n  if (lVar6 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\n}\n\n" (function_definition "int rc4_add_entropy(uchar *in,ulong inlen,prng_state *prng)\n\n{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte bVar4;\n  byte bVar5;\n  long lVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  uchar buf [256];\n  \n  lVar6 = *(long *)(in_FS_OFFSET + 0x28);\n  if (prng == (prng_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (inlen == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if (prng->ready == 0) {\n    uVar10 = (prng->field_0).rc4.s.x;\n    pbVar3 = in + inlen;\n    uVar13 = (uint)inlen & 7;\n    if ((inlen & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }\n      uVar10 = uVar7 + 1;\n      bVar4 = *in;\n      in = in + 1;\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n    }\n    bVar4 = *in;\n    (prng->field_0).rc4.s.x = uVar10 + 1;\n    (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n         (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n    uVar10 = uVar10 + 1;\n    for (in = in + 1; in != pbVar3; in = in + 8) {\nLAB_00187d4f:\n      bVar4 = *in;\n      (prng->field_0).rc4.s.x = uVar10 + 1;\n      (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[1];\n      uVar13 = uVar10 + 4;\n      (prng->field_0).rc4.s.x = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;\n      bVar4 = in[2];\n      (prng->field_0).rc4.s.x = uVar10 + 3;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;\n      uVar1 = uVar10 + 6;\n      bVar4 = in[3];\n      (prng->field_0).rc4.s.x = uVar13;\n      (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;\n      uVar2 = uVar10 + 7;\n      bVar4 = in[4];\n      uVar10 = uVar10 + 8;\n      (prng->field_0).rc4.s.x = uVar7;\n      (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[5];\n      (prng->field_0).rc4.s.x = uVar1;\n      (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;\n      bVar4 = in[6];\n      (prng->field_0).rc4.s.x = uVar2;\n      (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;\n      bVar4 = in[7];\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)inlen & 7;\n      if ((inlen & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }\n      buf[uVar11] = buf[uVar11] ^ in[uVar11];\n      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }\n      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }\n    }\n  }\n  if (lVar6 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\n}" primitive_type (function_declarator "rc4_add_entropy(uchar *in,ulong inlen,prng_state *prng)" identifier (parameter_list "(uchar *in,ulong inlen,prng_state *prng)" ( (parameter_declaration "uchar *in" type_identifier (pointer_declarator "*in" * identifier)) , (parameter_declaration "ulong inlen" type_identifier identifier) , (parameter_declaration "prng_state *prng" type_identifier (pointer_declarator "*prng" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte bVar4;\n  byte bVar5;\n  long lVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  uchar buf [256];\n  \n  lVar6 = *(long *)(in_FS_OFFSET + 0x28);\n  if (prng == (prng_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (inlen == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if (prng->ready == 0) {\n    uVar10 = (prng->field_0).rc4.s.x;\n    pbVar3 = in + inlen;\n    uVar13 = (uint)inlen & 7;\n    if ((inlen & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }\n      uVar10 = uVar7 + 1;\n      bVar4 = *in;\n      in = in + 1;\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n    }\n    bVar4 = *in;\n    (prng->field_0).rc4.s.x = uVar10 + 1;\n    (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n         (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n    uVar10 = uVar10 + 1;\n    for (in = in + 1; in != pbVar3; in = in + 8) {\nLAB_00187d4f:\n      bVar4 = *in;\n      (prng->field_0).rc4.s.x = uVar10 + 1;\n      (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[1];\n      uVar13 = uVar10 + 4;\n      (prng->field_0).rc4.s.x = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;\n      bVar4 = in[2];\n      (prng->field_0).rc4.s.x = uVar10 + 3;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;\n      uVar1 = uVar10 + 6;\n      bVar4 = in[3];\n      (prng->field_0).rc4.s.x = uVar13;\n      (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;\n      uVar2 = uVar10 + 7;\n      bVar4 = in[4];\n      uVar10 = uVar10 + 8;\n      (prng->field_0).rc4.s.x = uVar7;\n      (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[5];\n      (prng->field_0).rc4.s.x = uVar1;\n      (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;\n      bVar4 = in[6];\n      (prng->field_0).rc4.s.x = uVar2;\n      (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;\n      bVar4 = in[7];\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)inlen & 7;\n      if ((inlen & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }\n      buf[uVar11] = buf[uVar11] ^ in[uVar11];\n      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }\n      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }\n    }\n  }\n  if (lVar6 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uchar buf [256];" type_identifier (array_declarator "buf [256]" identifier [ number_literal ]) ;) (expression_statement "lVar6 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar6 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (prng == (prng_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }" if (parenthesized_expression "(prng == (prng_state *)0x0)" ( (binary_expression "prng == (prng_state *)0x0" identifier == (cast_expression "(prng_state *)0x0" ( (type_descriptor "prng_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }" { comment (expression_statement "crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);" (call_expression "crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e)" identifier (argument_list "("prng != NULL","src/prngs/rc4.c",0x3e)" ( (string_literal ""prng != NULL"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }" if (parenthesized_expression "(in == (uchar *)0x0)" ( (binary_expression "in == (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("in != NULL","src/prngs/rc4.c",0x3f);\n  }" { comment (expression_statement "crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);" (call_expression "crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f)" identifier (argument_list "("in != NULL","src/prngs/rc4.c",0x3f)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (inlen == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }" if (parenthesized_expression "(inlen == 0)" ( (binary_expression "inlen == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }" { comment (expression_statement "crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);" (call_expression "crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40)" identifier (argument_list "("inlen > 0","src/prngs/rc4.c",0x40)" ( (string_literal ""inlen > 0"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (prng->ready == 0) {\n    uVar10 = (prng->field_0).rc4.s.x;\n    pbVar3 = in + inlen;\n    uVar13 = (uint)inlen & 7;\n    if ((inlen & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }\n      uVar10 = uVar7 + 1;\n      bVar4 = *in;\n      in = in + 1;\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n    }\n    bVar4 = *in;\n    (prng->field_0).rc4.s.x = uVar10 + 1;\n    (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n         (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n    uVar10 = uVar10 + 1;\n    for (in = in + 1; in != pbVar3; in = in + 8) {\nLAB_00187d4f:\n      bVar4 = *in;\n      (prng->field_0).rc4.s.x = uVar10 + 1;\n      (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[1];\n      uVar13 = uVar10 + 4;\n      (prng->field_0).rc4.s.x = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;\n      bVar4 = in[2];\n      (prng->field_0).rc4.s.x = uVar10 + 3;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;\n      uVar1 = uVar10 + 6;\n      bVar4 = in[3];\n      (prng->field_0).rc4.s.x = uVar13;\n      (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;\n      uVar2 = uVar10 + 7;\n      bVar4 = in[4];\n      uVar10 = uVar10 + 8;\n      (prng->field_0).rc4.s.x = uVar7;\n      (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[5];\n      (prng->field_0).rc4.s.x = uVar1;\n      (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;\n      bVar4 = in[6];\n      (prng->field_0).rc4.s.x = uVar2;\n      (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;\n      bVar4 = in[7];\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)inlen & 7;\n      if ((inlen & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }\n      buf[uVar11] = buf[uVar11] ^ in[uVar11];\n      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }\n      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }\n    }\n  }" if (parenthesized_expression "(prng->ready == 0)" ( (binary_expression "prng->ready == 0" (field_expression "prng->ready" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    uVar10 = (prng->field_0).rc4.s.x;\n    pbVar3 = in + inlen;\n    uVar13 = (uint)inlen & 7;\n    if ((inlen & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }\n      uVar10 = uVar7 + 1;\n      bVar4 = *in;\n      in = in + 1;\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n    }\n    bVar4 = *in;\n    (prng->field_0).rc4.s.x = uVar10 + 1;\n    (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n         (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n    uVar10 = uVar10 + 1;\n    for (in = in + 1; in != pbVar3; in = in + 8) {\nLAB_00187d4f:\n      bVar4 = *in;\n      (prng->field_0).rc4.s.x = uVar10 + 1;\n      (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[1];\n      uVar13 = uVar10 + 4;\n      (prng->field_0).rc4.s.x = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;\n      bVar4 = in[2];\n      (prng->field_0).rc4.s.x = uVar10 + 3;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;\n      uVar1 = uVar10 + 6;\n      bVar4 = in[3];\n      (prng->field_0).rc4.s.x = uVar13;\n      (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;\n      uVar2 = uVar10 + 7;\n      bVar4 = in[4];\n      uVar10 = uVar10 + 8;\n      (prng->field_0).rc4.s.x = uVar7;\n      (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[5];\n      (prng->field_0).rc4.s.x = uVar1;\n      (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;\n      bVar4 = in[6];\n      (prng->field_0).rc4.s.x = uVar2;\n      (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;\n      bVar4 = in[7];\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;\n    }\n    iVar8 = 0;\n  }" { (expression_statement "uVar10 = (prng->field_0).rc4.s.x;" (assignment_expression "uVar10 = (prng->field_0).rc4.s.x" identifier = (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pbVar3 = in + inlen;" (assignment_expression "pbVar3 = in + inlen" identifier = (binary_expression "in + inlen" identifier + identifier)) ;) (expression_statement "uVar13 = (uint)inlen & 7;" (assignment_expression "uVar13 = (uint)inlen & 7" identifier = (binary_expression "(uint)inlen & 7" (cast_expression "(uint)inlen" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((inlen & 7) == 0) goto LAB_00187d4f;" if (parenthesized_expression "((inlen & 7) == 0)" ( (binary_expression "(inlen & 7) == 0" (parenthesized_expression "(inlen & 7)" ( (binary_expression "inlen & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00187d4f;" goto statement_identifier ;)) (if_statement "if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }\n      uVar10 = uVar7 + 1;\n      bVar4 = *in;\n      in = in + 1;\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n    }" if (parenthesized_expression "(uVar13 != 1)" ( (binary_expression "uVar13 != 1" identifier != number_literal) )) (compound_statement "{\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }\n      uVar10 = uVar7 + 1;\n      bVar4 = *in;\n      in = in + 1;\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n    }" { (expression_statement "uVar7 = uVar10;" (assignment_expression "uVar7 = uVar10" identifier = identifier) ;) (if_statement "if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }" if (parenthesized_expression "(uVar13 != 2)" ( (binary_expression "uVar13 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }\n        uVar7 = uVar10 + 1;\n        bVar4 = *in;\n        in = in + 1;\n        (prng->field_0).rc4.s.x = uVar7;\n        (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      }" { (if_statement "if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }" if (parenthesized_expression "(uVar13 != 3)" ( (binary_expression "uVar13 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }\n          uVar10 = uVar7 + 1;\n          bVar4 = *in;\n          in = in + 1;\n          (prng->field_0).rc4.s.x = uVar10;\n          (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n        }" { (if_statement "if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }" if (parenthesized_expression "(uVar13 != 4)" ( (binary_expression "uVar13 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }\n            uVar7 = uVar10 + 1;\n            bVar4 = *in;\n            in = in + 1;\n            (prng->field_0).rc4.s.x = uVar7;\n            (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n          }" { (if_statement "if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }" if (parenthesized_expression "(uVar13 != 5)" ( (binary_expression "uVar13 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }\n              uVar10 = uVar7 + 1;\n              bVar4 = *in;\n              in = in + 1;\n              (prng->field_0).rc4.s.x = uVar10;\n              (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;\n            }" { (if_statement "if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }" if (parenthesized_expression "(uVar13 != 6)" ( (binary_expression "uVar13 != 6" identifier != number_literal) )) (compound_statement "{\n                uVar7 = uVar10 + 1;\n                bVar4 = *in;\n                in = in + 1;\n                (prng->field_0).rc4.s.x = uVar7;\n                (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n              }" { (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *in;" (assignment_expression "bVar4 = *in" identifier = (pointer_expression "*in" * identifier)) ;) (expression_statement "in = in + 1;" (assignment_expression "in = in + 1" identifier = (binary_expression "in + 1" identifier + number_literal)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar7;" (assignment_expression "(prng->field_0).rc4.s.x = uVar7" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                     (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *in;" (assignment_expression "bVar4 = *in" identifier = (pointer_expression "*in" * identifier)) ;) (expression_statement "in = in + 1;" (assignment_expression "in = in + 1" identifier = (binary_expression "in + 1" identifier + number_literal)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar10;" (assignment_expression "(prng->field_0).rc4.s.x = uVar10" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n                   (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar7 & 0xff) + 8" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar7 & 0xff) + 8" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) + number_literal) ]) ^ identifier)) ;) })) (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *in;" (assignment_expression "bVar4 = *in" identifier = (pointer_expression "*in" * identifier)) ;) (expression_statement "in = in + 1;" (assignment_expression "in = in + 1" identifier = (binary_expression "in + 1" identifier + number_literal)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar7;" (assignment_expression "(prng->field_0).rc4.s.x = uVar7" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n                 (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *in;" (assignment_expression "bVar4 = *in" identifier = (pointer_expression "*in" * identifier)) ;) (expression_statement "in = in + 1;" (assignment_expression "in = in + 1" identifier = (binary_expression "in + 1" identifier + number_literal)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar10;" (assignment_expression "(prng->field_0).rc4.s.x = uVar10" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n               (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar7 & 0xff) + 8" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar7 & 0xff) + 8" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) + number_literal) ]) ^ identifier)) ;) })) (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *in;" (assignment_expression "bVar4 = *in" identifier = (pointer_expression "*in" * identifier)) ;) (expression_statement "in = in + 1;" (assignment_expression "in = in + 1" identifier = (binary_expression "in + 1" identifier + number_literal)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar7;" (assignment_expression "(prng->field_0).rc4.s.x = uVar7" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n             (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = *in;" (assignment_expression "bVar4 = *in" identifier = (pointer_expression "*in" * identifier)) ;) (expression_statement "in = in + 1;" (assignment_expression "in = in + 1" identifier = (binary_expression "in + 1" identifier + number_literal)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar10;" (assignment_expression "(prng->field_0).rc4.s.x = uVar10" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar7 & 0xff) + 8" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar7 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar7 & 0xff) + 8" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) + number_literal) ]) ^ identifier)) ;) })) (expression_statement "bVar4 = *in;" (assignment_expression "bVar4 = *in" identifier = (pointer_expression "*in" * identifier)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar10 + 1;" (assignment_expression "(prng->field_0).rc4.s.x = uVar10 + 1" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n         (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n         (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) ^ identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (for_statement "for (in = in + 1; in != pbVar3; in = in + 8) {\nLAB_00187d4f:\n      bVar4 = *in;\n      (prng->field_0).rc4.s.x = uVar10 + 1;\n      (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[1];\n      uVar13 = uVar10 + 4;\n      (prng->field_0).rc4.s.x = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;\n      bVar4 = in[2];\n      (prng->field_0).rc4.s.x = uVar10 + 3;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;\n      uVar1 = uVar10 + 6;\n      bVar4 = in[3];\n      (prng->field_0).rc4.s.x = uVar13;\n      (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;\n      uVar2 = uVar10 + 7;\n      bVar4 = in[4];\n      uVar10 = uVar10 + 8;\n      (prng->field_0).rc4.s.x = uVar7;\n      (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[5];\n      (prng->field_0).rc4.s.x = uVar1;\n      (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;\n      bVar4 = in[6];\n      (prng->field_0).rc4.s.x = uVar2;\n      (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;\n      bVar4 = in[7];\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;\n    }" for ( (assignment_expression "in = in + 1" identifier = (binary_expression "in + 1" identifier + number_literal)) ; (binary_expression "in != pbVar3" identifier != identifier) ; (assignment_expression "in = in + 8" identifier = (binary_expression "in + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00187d4f:\n      bVar4 = *in;\n      (prng->field_0).rc4.s.x = uVar10 + 1;\n      (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[1];\n      uVar13 = uVar10 + 4;\n      (prng->field_0).rc4.s.x = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;\n      bVar4 = in[2];\n      (prng->field_0).rc4.s.x = uVar10 + 3;\n      (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;\n      uVar1 = uVar10 + 6;\n      bVar4 = in[3];\n      (prng->field_0).rc4.s.x = uVar13;\n      (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;\n      uVar2 = uVar10 + 7;\n      bVar4 = in[4];\n      uVar10 = uVar10 + 8;\n      (prng->field_0).rc4.s.x = uVar7;\n      (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;\n      bVar4 = in[5];\n      (prng->field_0).rc4.s.x = uVar1;\n      (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;\n      bVar4 = in[6];\n      (prng->field_0).rc4.s.x = uVar2;\n      (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;\n      bVar4 = in[7];\n      (prng->field_0).rc4.s.x = uVar10;\n      (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;\n    }" { (labeled_statement "LAB_00187d4f:\n      bVar4 = *in;" statement_identifier : (expression_statement "bVar4 = *in;" (assignment_expression "bVar4 = *in" identifier = (pointer_expression "*in" * identifier)) ;)) (expression_statement "(prng->field_0).rc4.s.x = uVar10 + 1;" (assignment_expression "(prng->field_0).rc4.s.x = uVar10 + 1" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] =\n           (prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(uVar10 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(uVar10 & 0xff) + 8" (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) ))) + number_literal) ]) ^ identifier)) ;) (expression_statement "bVar4 = in[1];" (assignment_expression "bVar4 = in[1]" identifier = (subscript_expression "in[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = uVar10 + 4;" (assignment_expression "uVar13 = uVar10 + 4" identifier = (binary_expression "uVar10 + 4" identifier + number_literal)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar10 + 2;" (assignment_expression "(prng->field_0).rc4.s.x = uVar10 + 2" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "uVar10 + 2" identifier + number_literal)) ;) (expression_statement "uVar7 = uVar10 + 5;" (assignment_expression "uVar7 = uVar10 + 5" identifier = (binary_expression "uVar10 + 5" identifier + number_literal)) ;) (expression_statement "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(byte)(uVar10 + 1) + 8" (call_expression "(ulong)(byte)(uVar10 + 1)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar10 + 1)" ( (binary_expression "uVar10 + 1" identifier + number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 1) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(byte)(uVar10 + 1) + 8" (call_expression "(ulong)(byte)(uVar10 + 1)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar10 + 1)" ( (binary_expression "uVar10 + 1" identifier + number_literal) ))) + number_literal) ]) ^ identifier)) ;) (expression_statement "bVar4 = in[2];" (assignment_expression "bVar4 = in[2]" identifier = (subscript_expression "in[2]" identifier [ number_literal ])) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar10 + 3;" (assignment_expression "(prng->field_0).rc4.s.x = uVar10 + 3" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "uVar10 + 3" identifier + number_literal)) ;) (expression_statement "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] =\n           (prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(byte)(uVar10 + 2) + 8" (call_expression "(ulong)(byte)(uVar10 + 2)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar10 + 2)" ( (binary_expression "uVar10 + 2" identifier + number_literal) ))) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(byte)(uVar10 + 2) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(byte)(uVar10 + 2) + 8" (call_expression "(ulong)(byte)(uVar10 + 2)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar10 + 2)" ( (binary_expression "uVar10 + 2" identifier + number_literal) ))) + number_literal) ]) ^ identifier)) ;) (expression_statement "uVar1 = uVar10 + 6;" (assignment_expression "uVar1 = uVar10 + 6" identifier = (binary_expression "uVar10 + 6" identifier + number_literal)) ;) (expression_statement "bVar4 = in[3];" (assignment_expression "bVar4 = in[3]" identifier = (subscript_expression "in[3]" identifier [ number_literal ])) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar13;" (assignment_expression "(prng->field_0).rc4.s.x = uVar13" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "((ulong)(uVar10 + 3) & 0xff) + 8" (parenthesized_expression "((ulong)(uVar10 + 3) & 0xff)" ( (binary_expression "(ulong)(uVar10 + 3) & 0xff" (call_expression "(ulong)(uVar10 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 + 3)" ( (binary_expression "uVar10 + 3" identifier + number_literal) ))) & number_literal) )) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[((ulong)(uVar10 + 3) & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "((ulong)(uVar10 + 3) & 0xff) + 8" (parenthesized_expression "((ulong)(uVar10 + 3) & 0xff)" ( (binary_expression "(ulong)(uVar10 + 3) & 0xff" (call_expression "(ulong)(uVar10 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 + 3)" ( (binary_expression "uVar10 + 3" identifier + number_literal) ))) & number_literal) )) + number_literal) ]) ^ identifier)) ;) (expression_statement "uVar2 = uVar10 + 7;" (assignment_expression "uVar2 = uVar10 + 7" identifier = (binary_expression "uVar10 + 7" identifier + number_literal)) ;) (expression_statement "bVar4 = in[4];" (assignment_expression "bVar4 = in[4]" identifier = (subscript_expression "in[4]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = uVar10 + 8;" (assignment_expression "uVar10 = uVar10 + 8" identifier = (binary_expression "uVar10 + 8" identifier + number_literal)) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar7;" (assignment_expression "(prng->field_0).rc4.s.x = uVar7" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "((ulong)uVar13 & 0xff) + 8" (parenthesized_expression "((ulong)uVar13 & 0xff)" ( (binary_expression "(ulong)uVar13 & 0xff" (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[((ulong)uVar13 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "((ulong)uVar13 & 0xff) + 8" (parenthesized_expression "((ulong)uVar13 & 0xff)" ( (binary_expression "(ulong)uVar13 & 0xff" (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) + number_literal) ]) ^ identifier)) ;) (expression_statement "bVar4 = in[5];" (assignment_expression "bVar4 = in[5]" identifier = (subscript_expression "in[5]" identifier [ number_literal ])) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar1;" (assignment_expression "(prng->field_0).rc4.s.x = uVar1" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(byte)uVar7 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(byte)uVar7 + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(byte)uVar7 + 8" (cast_expression "(ulong)(byte)uVar7" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier)) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(byte)uVar7 + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(byte)uVar7 + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(byte)uVar7 + 8" (cast_expression "(ulong)(byte)uVar7" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier)) + number_literal) ]) ^ identifier)) ;) (expression_statement "bVar4 = in[6];" (assignment_expression "bVar4 = in[6]" identifier = (subscript_expression "in[6]" identifier [ number_literal ])) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar2;" (assignment_expression "(prng->field_0).rc4.s.x = uVar2" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[(ulong)(byte)uVar1 + 8] =\n           (prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(byte)uVar1 + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(byte)uVar1 + 8" (cast_expression "(ulong)(byte)uVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier)) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[(ulong)(byte)uVar1 + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[(ulong)(byte)uVar1 + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "(ulong)(byte)uVar1 + 8" (cast_expression "(ulong)(byte)uVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier)) + number_literal) ]) ^ identifier)) ;) (expression_statement "bVar4 = in[7];" (assignment_expression "bVar4 = in[7]" identifier = (subscript_expression "in[7]" identifier [ number_literal ])) ;) (expression_statement "(prng->field_0).rc4.s.x = uVar10;" (assignment_expression "(prng->field_0).rc4.s.x = uVar10" (field_expression "(prng->field_0).rc4.s.x" (field_expression "(prng->field_0).rc4.s" (field_expression "(prng->field_0).rc4" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4;" (assignment_expression "(prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] =\n           (prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "((ulong)uVar2 & 0xff) + 8" (parenthesized_expression "((ulong)uVar2 & 0xff)" ( (binary_expression "(ulong)uVar2 & 0xff" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) + number_literal) ]) = (binary_expression "(prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8] ^ bVar4" (subscript_expression "(prng->field_0).dummy[((ulong)uVar2 & 0xff) + 8]" (field_expression "(prng->field_0).dummy" (parenthesized_expression "(prng->field_0)" ( (field_expression "prng->field_0" identifier -> field_identifier) )) . field_identifier) [ (binary_expression "((ulong)uVar2 & 0xff) + 8" (parenthesized_expression "((ulong)uVar2 & 0xff)" ( (binary_expression "(ulong)uVar2 & 0xff" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) + number_literal) ]) ^ identifier)) ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)inlen & 7;\n      if ((inlen & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }\n      buf[uVar11] = buf[uVar11] ^ in[uVar11];\n      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }\n      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }\n    }\n  }" else (compound_statement "{\n    iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)inlen & 7;\n      if ((inlen & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }\n      buf[uVar11] = buf[uVar11] ^ in[uVar11];\n      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }\n      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }\n    }\n  }" { (expression_statement "iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100);" (assignment_expression "iVar8 = rc4_stream_keystream((rc4_state *)prng,buf,0x100)" identifier = (call_expression "rc4_stream_keystream((rc4_state *)prng,buf,0x100)" identifier (argument_list "((rc4_state *)prng,buf,0x100)" ( (cast_expression "(rc4_state *)prng" ( (type_descriptor "rc4_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)inlen & 7;\n      if ((inlen & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }\n      buf[uVar11] = buf[uVar11] ^ in[uVar11];\n      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }\n      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = 0;\n      uVar10 = (uint)inlen & 7;\n      if ((inlen & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }\n      buf[uVar11] = buf[uVar11] ^ in[uVar11];\n      for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }\n      iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = (uint)inlen & 7;" (assignment_expression "uVar10 = (uint)inlen & 7" identifier = (binary_expression "(uint)inlen & 7" (cast_expression "(uint)inlen" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((inlen & 7) == 0) goto LAB_00187ef5;" if (parenthesized_expression "((inlen & 7) == 0)" ( (binary_expression "(inlen & 7) == 0" (parenthesized_expression "(inlen & 7)" ( (binary_expression "inlen & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00187ef5;" goto statement_identifier ;)) (if_statement "if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }" if (parenthesized_expression "(uVar10 != 1)" ( (binary_expression "uVar10 != 1" identifier != number_literal) )) (compound_statement "{\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        buf[uVar12] = buf[uVar12] ^ in[uVar12];\n      }" { (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" identifier = identifier) ;) (if_statement "if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }" if (parenthesized_expression "(uVar10 != 2)" ( (binary_expression "uVar10 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          buf[uVar11] = buf[uVar11] ^ in[uVar11];\n        }" { (if_statement "if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }" if (parenthesized_expression "(uVar10 != 3)" ( (binary_expression "uVar10 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            buf[uVar12] = buf[uVar12] ^ in[uVar12];\n          }" { (if_statement "if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }" if (parenthesized_expression "(uVar10 != 4)" ( (binary_expression "uVar10 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              buf[uVar11] = buf[uVar11] ^ in[uVar11];\n            }" { (if_statement "if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }" if (parenthesized_expression "(uVar10 != 5)" ( (binary_expression "uVar10 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                buf[uVar12] = buf[uVar12] ^ in[uVar12];\n              }" { (if_statement "if (uVar10 != 6) {\n                  buf[0] = buf[0] ^ *in;\n                }" if (parenthesized_expression "(uVar10 != 6)" ( (binary_expression "uVar10 != 6" identifier != number_literal) )) (compound_statement "{\n                  buf[0] = buf[0] ^ *in;\n                }" { (expression_statement "buf[0] = buf[0] ^ *in;" (assignment_expression "buf[0] = buf[0] ^ *in" (subscript_expression "buf[0]" identifier [ number_literal ]) = (binary_expression "buf[0] ^ *in" (subscript_expression "buf[0]" identifier [ number_literal ]) ^ (pointer_expression "*in" * identifier))) ;) })) (expression_statement "uVar12 = (ulong)(uVar10 != 6);" (assignment_expression "uVar12 = (ulong)(uVar10 != 6)" identifier = (call_expression "(ulong)(uVar10 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 != 6)" ( (binary_expression "uVar10 != 6" identifier != number_literal) )))) ;) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "buf[uVar12] = buf[uVar12] ^ in[uVar12];" (assignment_expression "buf[uVar12] = buf[uVar12] ^ in[uVar12]" (subscript_expression "buf[uVar12]" identifier [ identifier ]) = (binary_expression "buf[uVar12] ^ in[uVar12]" (subscript_expression "buf[uVar12]" identifier [ identifier ]) ^ (subscript_expression "in[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "buf[uVar11] = buf[uVar11] ^ in[uVar11];" (assignment_expression "buf[uVar11] = buf[uVar11] ^ in[uVar11]" (subscript_expression "buf[uVar11]" identifier [ identifier ]) = (binary_expression "buf[uVar11] ^ in[uVar11]" (subscript_expression "buf[uVar11]" identifier [ identifier ]) ^ (subscript_expression "in[uVar11]" identifier [ identifier ]))) ;) })) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "buf[uVar12] = buf[uVar12] ^ in[uVar12];" (assignment_expression "buf[uVar12] = buf[uVar12] ^ in[uVar12]" (subscript_expression "buf[uVar12]" identifier [ identifier ]) = (binary_expression "buf[uVar12] ^ in[uVar12]" (subscript_expression "buf[uVar12]" identifier [ identifier ]) ^ (subscript_expression "in[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "buf[uVar11] = buf[uVar11] ^ in[uVar11];" (assignment_expression "buf[uVar11] = buf[uVar11] ^ in[uVar11]" (subscript_expression "buf[uVar11]" identifier [ identifier ]) = (binary_expression "buf[uVar11] ^ in[uVar11]" (subscript_expression "buf[uVar11]" identifier [ identifier ]) ^ (subscript_expression "in[uVar11]" identifier [ identifier ]))) ;) })) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "buf[uVar12] = buf[uVar12] ^ in[uVar12];" (assignment_expression "buf[uVar12] = buf[uVar12] ^ in[uVar12]" (subscript_expression "buf[uVar12]" identifier [ identifier ]) = (binary_expression "buf[uVar12] ^ in[uVar12]" (subscript_expression "buf[uVar12]" identifier [ identifier ]) ^ (subscript_expression "in[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "buf[uVar11] = buf[uVar11] ^ in[uVar11];" (assignment_expression "buf[uVar11] = buf[uVar11] ^ in[uVar11]" (subscript_expression "buf[uVar11]" identifier [ identifier ]) = (binary_expression "buf[uVar11] ^ in[uVar11]" (subscript_expression "buf[uVar11]" identifier [ identifier ]) ^ (subscript_expression "in[uVar11]" identifier [ identifier ]))) ;) (for_statement "for (uVar11 = uVar11 + 1; inlen != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }" for ( (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ; (binary_expression "inlen != uVar11" identifier != identifier) ; (assignment_expression "uVar11 = uVar11 + 8" identifier = (binary_expression "uVar11 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];\n        buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];\n        buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];\n        buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];\n        buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];\n        bVar4 = in[uVar11 + 6];\n        bVar5 = in[uVar11 + 7];\n        buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];\n        buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;\n        buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;\n      }" { (labeled_statement "LAB_00187ef5:\n        buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];" statement_identifier : (expression_statement "buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11];" (assignment_expression "buf[uVar11 & 0xff] = buf[uVar11 & 0xff] ^ in[uVar11]" (subscript_expression "buf[uVar11 & 0xff]" identifier [ (binary_expression "uVar11 & 0xff" identifier & number_literal) ]) = (binary_expression "buf[uVar11 & 0xff] ^ in[uVar11]" (subscript_expression "buf[uVar11 & 0xff]" identifier [ (binary_expression "uVar11 & 0xff" identifier & number_literal) ]) ^ (subscript_expression "in[uVar11]" identifier [ identifier ]))) ;)) (expression_statement "buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1];" (assignment_expression "buf[uVar11 + 1 & 0xff] = buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1]" (subscript_expression "buf[uVar11 + 1 & 0xff]" identifier [ (binary_expression "uVar11 + 1 & 0xff" (binary_expression "uVar11 + 1" identifier + number_literal) & number_literal) ]) = (binary_expression "buf[uVar11 + 1 & 0xff] ^ in[uVar11 + 1]" (subscript_expression "buf[uVar11 + 1 & 0xff]" identifier [ (binary_expression "uVar11 + 1 & 0xff" (binary_expression "uVar11 + 1" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "in[uVar11 + 1]" identifier [ (binary_expression "uVar11 + 1" identifier + number_literal) ]))) ;) (expression_statement "buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2];" (assignment_expression "buf[uVar11 + 2 & 0xff] = buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2]" (subscript_expression "buf[uVar11 + 2 & 0xff]" identifier [ (binary_expression "uVar11 + 2 & 0xff" (binary_expression "uVar11 + 2" identifier + number_literal) & number_literal) ]) = (binary_expression "buf[uVar11 + 2 & 0xff] ^ in[uVar11 + 2]" (subscript_expression "buf[uVar11 + 2 & 0xff]" identifier [ (binary_expression "uVar11 + 2 & 0xff" (binary_expression "uVar11 + 2" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "in[uVar11 + 2]" identifier [ (binary_expression "uVar11 + 2" identifier + number_literal) ]))) ;) (expression_statement "buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3];" (assignment_expression "buf[uVar11 + 3 & 0xff] = buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3]" (subscript_expression "buf[uVar11 + 3 & 0xff]" identifier [ (binary_expression "uVar11 + 3 & 0xff" (binary_expression "uVar11 + 3" identifier + number_literal) & number_literal) ]) = (binary_expression "buf[uVar11 + 3 & 0xff] ^ in[uVar11 + 3]" (subscript_expression "buf[uVar11 + 3 & 0xff]" identifier [ (binary_expression "uVar11 + 3 & 0xff" (binary_expression "uVar11 + 3" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "in[uVar11 + 3]" identifier [ (binary_expression "uVar11 + 3" identifier + number_literal) ]))) ;) (expression_statement "buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4];" (assignment_expression "buf[uVar11 + 4 & 0xff] = buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4]" (subscript_expression "buf[uVar11 + 4 & 0xff]" identifier [ (binary_expression "uVar11 + 4 & 0xff" (binary_expression "uVar11 + 4" identifier + number_literal) & number_literal) ]) = (binary_expression "buf[uVar11 + 4 & 0xff] ^ in[uVar11 + 4]" (subscript_expression "buf[uVar11 + 4 & 0xff]" identifier [ (binary_expression "uVar11 + 4 & 0xff" (binary_expression "uVar11 + 4" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "in[uVar11 + 4]" identifier [ (binary_expression "uVar11 + 4" identifier + number_literal) ]))) ;) (expression_statement "bVar4 = in[uVar11 + 6];" (assignment_expression "bVar4 = in[uVar11 + 6]" identifier = (subscript_expression "in[uVar11 + 6]" identifier [ (binary_expression "uVar11 + 6" identifier + number_literal) ])) ;) (expression_statement "bVar5 = in[uVar11 + 7];" (assignment_expression "bVar5 = in[uVar11 + 7]" identifier = (subscript_expression "in[uVar11 + 7]" identifier [ (binary_expression "uVar11 + 7" identifier + number_literal) ])) ;) (expression_statement "buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5];" (assignment_expression "buf[uVar11 + 5 & 0xff] = buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5]" (subscript_expression "buf[uVar11 + 5 & 0xff]" identifier [ (binary_expression "uVar11 + 5 & 0xff" (binary_expression "uVar11 + 5" identifier + number_literal) & number_literal) ]) = (binary_expression "buf[uVar11 + 5 & 0xff] ^ in[uVar11 + 5]" (subscript_expression "buf[uVar11 + 5 & 0xff]" identifier [ (binary_expression "uVar11 + 5 & 0xff" (binary_expression "uVar11 + 5" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "in[uVar11 + 5]" identifier [ (binary_expression "uVar11 + 5" identifier + number_literal) ]))) ;) (expression_statement "buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4;" (assignment_expression "buf[uVar11 + 6 & 0xff] = buf[uVar11 + 6 & 0xff] ^ bVar4" (subscript_expression "buf[uVar11 + 6 & 0xff]" identifier [ (binary_expression "uVar11 + 6 & 0xff" (binary_expression "uVar11 + 6" identifier + number_literal) & number_literal) ]) = (binary_expression "buf[uVar11 + 6 & 0xff] ^ bVar4" (subscript_expression "buf[uVar11 + 6 & 0xff]" identifier [ (binary_expression "uVar11 + 6 & 0xff" (binary_expression "uVar11 + 6" identifier + number_literal) & number_literal) ]) ^ identifier)) ;) (expression_statement "buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5;" (assignment_expression "buf[uVar11 + 7 & 0xff] = buf[uVar11 + 7 & 0xff] ^ bVar5" (subscript_expression "buf[uVar11 + 7 & 0xff]" identifier [ (binary_expression "uVar11 + 7 & 0xff" (binary_expression "uVar11 + 7" identifier + number_literal) & number_literal) ]) = (binary_expression "buf[uVar11 + 7 & 0xff] ^ bVar5" (subscript_expression "buf[uVar11 + 7 & 0xff]" identifier [ (binary_expression "uVar11 + 7 & 0xff" (binary_expression "uVar11 + 7" identifier + number_literal) & number_literal) ]) ^ identifier)) ;) })) (expression_statement "iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100);" (assignment_expression "iVar8 = rc4_stream_setup((rc4_state *)prng,buf,0x100)" identifier = (call_expression "rc4_stream_setup((rc4_state *)prng,buf,0x100)" identifier (argument_list "((rc4_state *)prng,buf,0x100)" ( (cast_expression "(rc4_state *)prng" ( (type_descriptor "rc4_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(buf,0x100);\n      }" { (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" identifier = number_literal) ;) (do_statement "do {\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);" do (compound_statement "{\n          rc4_stream_keystream((rc4_state *)prng,buf,0x100);\n          lVar9 = lVar9 + -1;\n        }" { (expression_statement "rc4_stream_keystream((rc4_state *)prng,buf,0x100);" (call_expression "rc4_stream_keystream((rc4_state *)prng,buf,0x100)" identifier (argument_list "((rc4_state *)prng,buf,0x100)" ( (cast_expression "(rc4_state *)prng" ( (type_descriptor "rc4_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) ;) (expression_statement "zeromem(buf,0x100);" (call_expression "zeromem(buf,0x100)" identifier (argument_list "(buf,0x100)" ( identifier , number_literal ))) ;) })) })) }))) (if_statement "if (lVar6 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar6 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar6 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar8;" return identifier ;) })))
(translation_unit "int rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  byte bVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  byte local_138 [264];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 == (uint *)0x0) {\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (param_1 == (byte *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }\n  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar8;\n}\n\n" (function_definition "int rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  byte bVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  byte local_138 [264];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 == (uint *)0x0) {\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (param_1 == (byte *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }\n  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar8;\n}" primitive_type (function_declarator "rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)" identifier (parameter_list "(byte *param_1,ulong param_2,uint *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  byte bVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  byte local_138 [264];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 == (uint *)0x0) {\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (param_1 == (byte *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }\n  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte local_138 [264];" type_identifier (array_declarator "local_138 [264]" identifier [ number_literal ]) ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_3 == (uint *)0x0) {\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }" if (parenthesized_expression "(param_3 == (uint *)0x0)" ( (binary_expression "param_3 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }" { (expression_statement "crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);" (call_expression "crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e)" identifier (argument_list "("prng != NULL","src/prngs/rc4.c",0x3e)" ( (string_literal ""prng != NULL"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_1 == (byte *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }" { (expression_statement "crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);" (call_expression "crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f)" identifier (argument_list "("in != NULL","src/prngs/rc4.c",0x3f)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }" { (expression_statement "crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);" (call_expression "crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40)" identifier (argument_list "("inlen > 0","src/prngs/rc4.c",0x40)" ( (string_literal ""inlen > 0"" " string_content ") , (string_literal ""src/prngs/rc4.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" if (parenthesized_expression "((short)param_3[0x113c] == 0)" ( (binary_expression "(short)param_3[0x113c] == 0" (cast_expression "(short)param_3[0x113c]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_3[0x113c]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }" { (expression_statement "uVar10 = *param_3;" (assignment_expression "uVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "pbVar3 = param_1 + param_2;" (assignment_expression "pbVar3 = param_1 + param_2" identifier = (binary_expression "param_1 + param_2" identifier + identifier)) ;) (expression_statement "uVar13 = (uint)param_2 & 7;" (assignment_expression "uVar13 = (uint)param_2 & 7" identifier = (binary_expression "(uint)param_2 & 7" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((param_2 & 7) == 0) goto LAB_00187d4f;" if (parenthesized_expression "((param_2 & 7) == 0)" ( (binary_expression "(param_2 & 7) == 0" (parenthesized_expression "(param_2 & 7)" ( (binary_expression "param_2 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00187d4f;" goto statement_identifier ;)) (if_statement "if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" if (parenthesized_expression "(uVar13 != 1)" ( (binary_expression "uVar13 != 1" identifier != number_literal) )) (compound_statement "{\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" { (expression_statement "uVar7 = uVar10;" (assignment_expression "uVar7 = uVar10" identifier = identifier) ;) (if_statement "if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }" if (parenthesized_expression "(uVar13 != 2)" ( (binary_expression "uVar13 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }" { (if_statement "if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }" if (parenthesized_expression "(uVar13 != 3)" ( (binary_expression "uVar13 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }" { (if_statement "if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }" if (parenthesized_expression "(uVar13 != 4)" ( (binary_expression "uVar13 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }" { (if_statement "if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }" if (parenthesized_expression "(uVar13 != 5)" ( (binary_expression "uVar13 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }" { (if_statement "if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }" if (parenthesized_expression "(uVar13 != 6)" ( (binary_expression "uVar13 != 6" identifier != number_literal) )) (compound_statement "{\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }" { (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_3 = uVar10 + 1;" (assignment_expression "*param_3 = uVar10 + 1" (pointer_expression "*param_3" * identifier) = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (for_statement "for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" for ( (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ; (binary_expression "param_1 != pbVar3" identifier != identifier) ; (assignment_expression "param_1 = param_1 + 8" identifier = (binary_expression "param_1 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" { (labeled_statement "LAB_00187d4f:\n      bVar5 = *param_1;" statement_identifier : (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (expression_statement "*param_3 = uVar10 + 1;" (assignment_expression "*param_3 = uVar10 + 1" (pointer_expression "*param_3" * identifier) = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" ( (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[1];" (assignment_expression "bVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = uVar10 + 4;" (assignment_expression "uVar13 = uVar10 + 4" identifier = (binary_expression "uVar10 + 4" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar10 + 2;" (assignment_expression "*param_3 = uVar10 + 2" (pointer_expression "*param_3" * identifier) = (binary_expression "uVar10 + 2" identifier + number_literal)) ;) (expression_statement "uVar7 = uVar10 + 5;" (assignment_expression "uVar7 = uVar10 + 5" identifier = (binary_expression "uVar10 + 5" identifier + number_literal)) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" ( (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 1) + 8" (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 1)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(byte)(uVar10 + 1)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar10 + 1)" ( (binary_expression "uVar10 + 1" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[2];" (assignment_expression "bVar5 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar10 + 3;" (assignment_expression "*param_3 = uVar10 + 3" (pointer_expression "*param_3" * identifier) = (binary_expression "uVar10 + 3" identifier + number_literal)) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" ( (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 2) + 8" (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 2)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(byte)(uVar10 + 2)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar10 + 2)" ( (binary_expression "uVar10 + 2" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "uVar1 = uVar10 + 6;" (assignment_expression "uVar1 = uVar10 + 6" identifier = (binary_expression "uVar10 + 6" identifier + number_literal)) ;) (expression_statement "bVar5 = param_1[3];" (assignment_expression "bVar5 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar13;" (assignment_expression "*param_3 = uVar13" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" ( (binary_expression "(long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)(uVar10 + 3) & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((ulong)(uVar10 + 3) & 0xff)" ( (binary_expression "(ulong)(uVar10 + 3) & 0xff" (call_expression "(ulong)(uVar10 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 + 3)" ( (binary_expression "uVar10 + 3" identifier + number_literal) ))) & number_literal) ))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "uVar2 = uVar10 + 7;" (assignment_expression "uVar2 = uVar10 + 7" identifier = (binary_expression "uVar10 + 7" identifier + number_literal)) ;) (expression_statement "bVar5 = param_1[4];" (assignment_expression "bVar5 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = uVar10 + 8;" (assignment_expression "uVar10 = uVar10 + 8" identifier = (binary_expression "uVar10 + 8" identifier + number_literal)) ;) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" ( (binary_expression "(long)param_3 + ((ulong)uVar13 & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)uVar13 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((ulong)uVar13 & 0xff)" ( (binary_expression "(ulong)uVar13 & 0xff" (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[5];" (assignment_expression "bVar5 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar1;" (assignment_expression "*param_3 = uVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(byte)uVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(byte)uVar7 + 8)" ( (binary_expression "(long)param_3 + (ulong)(byte)uVar7 + 8" (binary_expression "(long)param_3 + (ulong)(byte)uVar7" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)(byte)uVar7" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[6];" (assignment_expression "bVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar2;" (assignment_expression "*param_3 = uVar2" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8)" identifier = (cast_expression "(byte *)((long)param_3 + (ulong)(byte)uVar1 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + (ulong)(byte)uVar1 + 8)" ( (binary_expression "(long)param_3 + (ulong)(byte)uVar1 + 8" (binary_expression "(long)param_3 + (ulong)(byte)uVar1" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)(byte)uVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) (expression_statement "bVar5 = param_1[7];" (assignment_expression "bVar5 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" identifier = (cast_expression "(byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" ( (binary_expression "(long)param_3 + ((ulong)uVar2 & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)uVar2 & 0xff)" (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((ulong)uVar2 & 0xff)" ( (binary_expression "(ulong)uVar2 & 0xff" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" * identifier) ^ identifier)) ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" else (compound_statement "{\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" { (expression_statement "iVar8 = rc4_stream_keystream(param_3,local_138,0x100);" (assignment_expression "iVar8 = rc4_stream_keystream(param_3,local_138,0x100)" identifier = (call_expression "rc4_stream_keystream(param_3,local_138,0x100)" identifier (argument_list "(param_3,local_138,0x100)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = (uint)param_2 & 7;" (assignment_expression "uVar10 = (uint)param_2 & 7" identifier = (binary_expression "(uint)param_2 & 7" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((param_2 & 7) == 0) goto LAB_00187ef5;" if (parenthesized_expression "((param_2 & 7) == 0)" ( (binary_expression "(param_2 & 7) == 0" (parenthesized_expression "(param_2 & 7)" ( (binary_expression "param_2 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00187ef5;" goto statement_identifier ;)) (if_statement "if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }" if (parenthesized_expression "(uVar10 != 1)" ( (binary_expression "uVar10 != 1" identifier != number_literal) )) (compound_statement "{\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }" { (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" identifier = identifier) ;) (if_statement "if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }" if (parenthesized_expression "(uVar10 != 2)" ( (binary_expression "uVar10 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }" { (if_statement "if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }" if (parenthesized_expression "(uVar10 != 3)" ( (binary_expression "uVar10 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }" { (if_statement "if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }" if (parenthesized_expression "(uVar10 != 4)" ( (binary_expression "uVar10 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }" { (if_statement "if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }" if (parenthesized_expression "(uVar10 != 5)" ( (binary_expression "uVar10 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }" { (if_statement "if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }" if (parenthesized_expression "(uVar10 != 6)" ( (binary_expression "uVar10 != 6" identifier != number_literal) )) (compound_statement "{\n                  local_138[0] = local_138[0] ^ *param_1;\n                }" { (expression_statement "local_138[0] = local_138[0] ^ *param_1;" (assignment_expression "local_138[0] = local_138[0] ^ *param_1" (subscript_expression "local_138[0]" identifier [ number_literal ]) = (binary_expression "local_138[0] ^ *param_1" (subscript_expression "local_138[0]" identifier [ number_literal ]) ^ (pointer_expression "*param_1" * identifier))) ;) })) (expression_statement "uVar12 = (ulong)(uVar10 != 6);" (assignment_expression "uVar12 = (ulong)(uVar10 != 6)" identifier = (call_expression "(ulong)(uVar10 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar10 != 6)" ( (binary_expression "uVar10 != 6" identifier != number_literal) )))) ;) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) = (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) = (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar11]" identifier [ identifier ]))) ;) })) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) = (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) = (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar11]" identifier [ identifier ]))) ;) })) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) = (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar12]" identifier [ identifier ]))) ;) })) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) = (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" identifier [ identifier ]) ^ (subscript_expression "param_1[uVar11]" identifier [ identifier ]))) ;) (for_statement "for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }" for ( (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ; (binary_expression "param_2 != uVar11" identifier != identifier) ; (assignment_expression "uVar11 = uVar11 + 8" identifier = (binary_expression "uVar11 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }" { (labeled_statement "LAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];" statement_identifier : (expression_statement "local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11 & 0xff]" identifier [ (binary_expression "uVar11 & 0xff" identifier & number_literal) ]) = (binary_expression "local_138[uVar11 & 0xff] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11 & 0xff]" identifier [ (binary_expression "uVar11 & 0xff" identifier & number_literal) ]) ^ (subscript_expression "param_1[uVar11]" identifier [ identifier ]))) ;)) (expression_statement "local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];" (assignment_expression "local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1]" (subscript_expression "local_138[uVar11 + 1 & 0xff]" identifier [ (binary_expression "uVar11 + 1 & 0xff" (binary_expression "uVar11 + 1" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1]" (subscript_expression "local_138[uVar11 + 1 & 0xff]" identifier [ (binary_expression "uVar11 + 1 & 0xff" (binary_expression "uVar11 + 1" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 1]" identifier [ (binary_expression "uVar11 + 1" identifier + number_literal) ]))) ;) (expression_statement "local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];" (assignment_expression "local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2]" (subscript_expression "local_138[uVar11 + 2 & 0xff]" identifier [ (binary_expression "uVar11 + 2 & 0xff" (binary_expression "uVar11 + 2" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2]" (subscript_expression "local_138[uVar11 + 2 & 0xff]" identifier [ (binary_expression "uVar11 + 2 & 0xff" (binary_expression "uVar11 + 2" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 2]" identifier [ (binary_expression "uVar11 + 2" identifier + number_literal) ]))) ;) (expression_statement "local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];" (assignment_expression "local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3]" (subscript_expression "local_138[uVar11 + 3 & 0xff]" identifier [ (binary_expression "uVar11 + 3 & 0xff" (binary_expression "uVar11 + 3" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3]" (subscript_expression "local_138[uVar11 + 3 & 0xff]" identifier [ (binary_expression "uVar11 + 3 & 0xff" (binary_expression "uVar11 + 3" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 3]" identifier [ (binary_expression "uVar11 + 3" identifier + number_literal) ]))) ;) (expression_statement "local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];" (assignment_expression "local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4]" (subscript_expression "local_138[uVar11 + 4 & 0xff]" identifier [ (binary_expression "uVar11 + 4 & 0xff" (binary_expression "uVar11 + 4" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4]" (subscript_expression "local_138[uVar11 + 4 & 0xff]" identifier [ (binary_expression "uVar11 + 4 & 0xff" (binary_expression "uVar11 + 4" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 4]" identifier [ (binary_expression "uVar11 + 4" identifier + number_literal) ]))) ;) (expression_statement "bVar5 = param_1[uVar11 + 6];" (assignment_expression "bVar5 = param_1[uVar11 + 6]" identifier = (subscript_expression "param_1[uVar11 + 6]" identifier [ (binary_expression "uVar11 + 6" identifier + number_literal) ])) ;) (expression_statement "bVar6 = param_1[uVar11 + 7];" (assignment_expression "bVar6 = param_1[uVar11 + 7]" identifier = (subscript_expression "param_1[uVar11 + 7]" identifier [ (binary_expression "uVar11 + 7" identifier + number_literal) ])) ;) (expression_statement "local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];" (assignment_expression "local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5]" (subscript_expression "local_138[uVar11 + 5 & 0xff]" identifier [ (binary_expression "uVar11 + 5 & 0xff" (binary_expression "uVar11 + 5" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5]" (subscript_expression "local_138[uVar11 + 5 & 0xff]" identifier [ (binary_expression "uVar11 + 5 & 0xff" (binary_expression "uVar11 + 5" identifier + number_literal) & number_literal) ]) ^ (subscript_expression "param_1[uVar11 + 5]" identifier [ (binary_expression "uVar11 + 5" identifier + number_literal) ]))) ;) (expression_statement "local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;" (assignment_expression "local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5" (subscript_expression "local_138[uVar11 + 6 & 0xff]" identifier [ (binary_expression "uVar11 + 6 & 0xff" (binary_expression "uVar11 + 6" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 6 & 0xff] ^ bVar5" (subscript_expression "local_138[uVar11 + 6 & 0xff]" identifier [ (binary_expression "uVar11 + 6 & 0xff" (binary_expression "uVar11 + 6" identifier + number_literal) & number_literal) ]) ^ identifier)) ;) (expression_statement "local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;" (assignment_expression "local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6" (subscript_expression "local_138[uVar11 + 7 & 0xff]" identifier [ (binary_expression "uVar11 + 7 & 0xff" (binary_expression "uVar11 + 7" identifier + number_literal) & number_literal) ]) = (binary_expression "local_138[uVar11 + 7 & 0xff] ^ bVar6" (subscript_expression "local_138[uVar11 + 7 & 0xff]" identifier [ (binary_expression "uVar11 + 7 & 0xff" (binary_expression "uVar11 + 7" identifier + number_literal) & number_literal) ]) ^ identifier)) ;) })) (expression_statement "iVar8 = rc4_stream_setup(param_3,local_138,0x100);" (assignment_expression "iVar8 = rc4_stream_setup(param_3,local_138,0x100)" identifier = (call_expression "rc4_stream_setup(param_3,local_138,0x100)" identifier (argument_list "(param_3,local_138,0x100)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }" { (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" identifier = number_literal) ;) (do_statement "do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);" do (compound_statement "{\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        }" { (expression_statement "rc4_stream_keystream(param_3,local_138,0x100);" (call_expression "rc4_stream_keystream(param_3,local_138,0x100)" identifier (argument_list "(param_3,local_138,0x100)" ( identifier , identifier , number_literal ))) ;) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) ;) (expression_statement "zeromem(local_138,0x100);" (call_expression "zeromem(local_138,0x100)" identifier (argument_list "(local_138,0x100)" ( identifier , number_literal ))) ;) })) })) }))) (if_statement "if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_30 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return iVar8;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) ^ (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (subscript_expression IDENT [ IDENT ]))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (subscript_expression IDENT [ IDENT ]))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (subscript_expression IDENT [ IDENT ]))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (subscript_expression IDENT [ IDENT ]))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (subscript_expression IDENT [ IDENT ]))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (subscript_expression IDENT [ IDENT ]))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT & LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT & LIT) ]) ^ (subscript_expression IDENT [ IDENT ]))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + LIT) & LIT) ]) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  byte bVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  byte local_138 [264];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 == (uint *)0x0) {\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (param_1 == (byte *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }\n  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar8;\n}" (primitive_type "int") (function_declarator "rc4_add_entropy(byte *param_1,ulong param_2,uint *param_3)" (identifier "rc4_add_entropy") (parameter_list "(byte *param_1,ulong param_2,uint *param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  byte bVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  uint uVar13;\n  long in_FS_OFFSET;\n  byte local_138 [264];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 == (uint *)0x0) {\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }\n  if (param_1 == (byte *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }\n  if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }\n  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar8;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte local_138 [264];" (type_identifier "byte") (array_declarator "local_138 [264]" (identifier "local_138") ([ "[") (number_literal "264") (] "]")) (; ";")) (declaration "long local_30;" (sized_type_specifier "long" (long "long")) (identifier "local_30") (; ";")) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_3 == (uint *)0x0) {\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }" (if "if") (parenthesized_expression "(param_3 == (uint *)0x0)" (( "(") (binary_expression "param_3 == (uint *)0x0" (identifier "param_3") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);\n  }" ({ "{") (expression_statement "crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);" (call_expression "crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e)" (identifier "crypt_argchk") (argument_list "("prng != NULL","src/prngs/rc4.c",0x3e)" (( "(") (string_literal ""prng != NULL"" (" """) (string_content "prng != NULL") (" """)) (, ",") (string_literal ""src/prngs/rc4.c"" (" """) (string_content "src/prngs/rc4.c") (" """)) (, ",") (number_literal "0x3e") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1 == (byte *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);\n  }" ({ "{") (expression_statement "crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);" (call_expression "crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f)" (identifier "crypt_argchk") (argument_list "("in != NULL","src/prngs/rc4.c",0x3f)" (( "(") (string_literal ""in != NULL"" (" """) (string_content "in != NULL") (" """)) (, ",") (string_literal ""src/prngs/rc4.c"" (" """) (string_content "src/prngs/rc4.c") (" """)) (, ",") (number_literal "0x3f") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);\n  }" ({ "{") (expression_statement "crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);" (call_expression "crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40)" (identifier "crypt_argchk") (argument_list "("inlen > 0","src/prngs/rc4.c",0x40)" (( "(") (string_literal ""inlen > 0"" (" """) (string_content "inlen > 0") (" """)) (, ",") (string_literal ""src/prngs/rc4.c"" (" """) (string_content "src/prngs/rc4.c") (" """)) (, ",") (number_literal "0x40") () ")"))) (; ";")) (} "}"))) (if_statement "if ((short)param_3[0x113c] == 0) {\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }\n  else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" (if "if") (parenthesized_expression "((short)param_3[0x113c] == 0)" (( "(") (binary_expression "(short)param_3[0x113c] == 0" (cast_expression "(short)param_3[0x113c]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "param_3[0x113c]" (identifier "param_3") ([ "[") (number_literal "0x113c") (] "]"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = *param_3;\n    pbVar3 = param_1 + param_2;\n    uVar13 = (uint)param_2 & 7;\n    if ((param_2 & 7) == 0) goto LAB_00187d4f;\n    if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    bVar5 = *param_1;\n    *param_3 = uVar10 + 1;\n    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n    *pbVar4 = *pbVar4 ^ bVar5;\n    uVar10 = uVar10 + 1;\n    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }\n    iVar8 = 0;\n  }" ({ "{") (expression_statement "uVar10 = *param_3;" (assignment_expression "uVar10 = *param_3" (identifier "uVar10") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "pbVar3 = param_1 + param_2;" (assignment_expression "pbVar3 = param_1 + param_2" (identifier "pbVar3") (= "=") (binary_expression "param_1 + param_2" (identifier "param_1") (+ "+") (identifier "param_2"))) (; ";")) (expression_statement "uVar13 = (uint)param_2 & 7;" (assignment_expression "uVar13 = (uint)param_2 & 7" (identifier "uVar13") (= "=") (binary_expression "(uint)param_2 & 7" (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((param_2 & 7) == 0) goto LAB_00187d4f;" (if "if") (parenthesized_expression "((param_2 & 7) == 0)" (( "(") (binary_expression "(param_2 & 7) == 0" (parenthesized_expression "(param_2 & 7)" (( "(") (binary_expression "param_2 & 7" (identifier "param_2") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00187d4f;" (goto "goto") (statement_identifier "LAB_00187d4f") (; ";"))) (if_statement "if (uVar13 != 1) {\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" (if "if") (parenthesized_expression "(uVar13 != 1)" (( "(") (binary_expression "uVar13 != 1" (identifier "uVar13") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      uVar7 = uVar10;\n      if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }\n      uVar10 = uVar7 + 1;\n      bVar5 = *param_1;\n      param_1 = param_1 + 1;\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" ({ "{") (expression_statement "uVar7 = uVar10;" (assignment_expression "uVar7 = uVar10" (identifier "uVar7") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (uVar13 != 2) {\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }" (if "if") (parenthesized_expression "(uVar13 != 2)" (( "(") (binary_expression "uVar13 != 2" (identifier "uVar13") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }\n        uVar7 = uVar10 + 1;\n        bVar5 = *param_1;\n        param_1 = param_1 + 1;\n        *param_3 = uVar7;\n        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n        *pbVar4 = *pbVar4 ^ bVar5;\n      }" ({ "{") (if_statement "if (uVar13 != 3) {\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }" (if "if") (parenthesized_expression "(uVar13 != 3)" (( "(") (binary_expression "uVar13 != 3" (identifier "uVar13") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n          if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }\n          uVar10 = uVar7 + 1;\n          bVar5 = *param_1;\n          param_1 = param_1 + 1;\n          *param_3 = uVar10;\n          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n          *pbVar4 = *pbVar4 ^ bVar5;\n        }" ({ "{") (if_statement "if (uVar13 != 4) {\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }" (if "if") (parenthesized_expression "(uVar13 != 4)" (( "(") (binary_expression "uVar13 != 4" (identifier "uVar13") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n            if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }\n            uVar7 = uVar10 + 1;\n            bVar5 = *param_1;\n            param_1 = param_1 + 1;\n            *param_3 = uVar7;\n            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n            *pbVar4 = *pbVar4 ^ bVar5;\n          }" ({ "{") (if_statement "if (uVar13 != 5) {\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }" (if "if") (parenthesized_expression "(uVar13 != 5)" (( "(") (binary_expression "uVar13 != 5" (identifier "uVar13") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n              if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }\n              uVar10 = uVar7 + 1;\n              bVar5 = *param_1;\n              param_1 = param_1 + 1;\n              *param_3 = uVar10;\n              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);\n              *pbVar4 = *pbVar4 ^ bVar5;\n            }" ({ "{") (if_statement "if (uVar13 != 6) {\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }" (if "if") (parenthesized_expression "(uVar13 != 6)" (( "(") (binary_expression "uVar13 != 6" (identifier "uVar13") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                uVar7 = uVar10 + 1;\n                bVar5 = *param_1;\n                param_1 = param_1 + 1;\n                *param_3 = uVar7;\n                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n                *pbVar4 = *pbVar4 ^ bVar5;\n              }" ({ "{") (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" (identifier "bVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (} "}"))) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" (identifier "bVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar7 & 0xff)" (( "(") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (} "}"))) (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" (identifier "bVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (} "}"))) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" (identifier "bVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar7 & 0xff)" (( "(") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (} "}"))) (expression_statement "uVar7 = uVar10 + 1;" (assignment_expression "uVar7 = uVar10 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" (identifier "bVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (} "}"))) (expression_statement "uVar10 = uVar7 + 1;" (assignment_expression "uVar10 = uVar7 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" (identifier "bVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(uVar7 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar7 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar7 & 0xff)" (( "(") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (} "}"))) (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" (identifier "bVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*param_3 = uVar10 + 1;" (assignment_expression "*param_3 = uVar10 + 1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (for_statement "for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" (for "for") (( "(") (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";") (binary_expression "param_1 != pbVar3" (identifier "param_1") (!= "!=") (identifier "pbVar3")) (; ";") (assignment_expression "param_1 = param_1 + 8" (identifier "param_1") (= "=") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8"))) () ")") (compound_statement "{\nLAB_00187d4f:\n      bVar5 = *param_1;\n      *param_3 = uVar10 + 1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[1];\n      uVar13 = uVar10 + 4;\n      *param_3 = uVar10 + 2;\n      uVar7 = uVar10 + 5;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[2];\n      *param_3 = uVar10 + 3;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar1 = uVar10 + 6;\n      bVar5 = param_1[3];\n      *param_3 = uVar13;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      uVar2 = uVar10 + 7;\n      bVar5 = param_1[4];\n      uVar10 = uVar10 + 8;\n      *param_3 = uVar7;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[5];\n      *param_3 = uVar1;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[6];\n      *param_3 = uVar2;\n      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n      bVar5 = param_1[7];\n      *param_3 = uVar10;\n      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);\n      *pbVar4 = *pbVar4 ^ bVar5;\n    }" ({ "{") (labeled_statement "LAB_00187d4f:\n      bVar5 = *param_1;" (statement_identifier "LAB_00187d4f") (: ":") (expression_statement "bVar5 = *param_1;" (assignment_expression "bVar5 = *param_1" (identifier "bVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (expression_statement "*param_3 = uVar10 + 1;" (assignment_expression "*param_3 = uVar10 + 1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(uVar10 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff) + 8" (binary_expression "(long)param_3 + (ulong)(uVar10 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(uVar10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "bVar5 = param_1[1];" (assignment_expression "bVar5 = param_1[1]" (identifier "bVar5") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar13 = uVar10 + 4;" (assignment_expression "uVar13 = uVar10 + 4" (identifier "uVar13") (= "=") (binary_expression "uVar10 + 4" (identifier "uVar10") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*param_3 = uVar10 + 2;" (assignment_expression "*param_3 = uVar10 + 2" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "uVar10 + 2" (identifier "uVar10") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar7 = uVar10 + 5;" (assignment_expression "uVar7 = uVar10 + 5" (identifier "uVar7") (= "=") (binary_expression "uVar10 + 5" (identifier "uVar10") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 1) + 8" (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 1)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(byte)(uVar10 + 1)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(uVar10 + 1)" (( "(") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "bVar5 = param_1[2];" (assignment_expression "bVar5 = param_1[2]" (identifier "bVar5") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*param_3 = uVar10 + 3;" (assignment_expression "*param_3 = uVar10 + 3" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "uVar10 + 3" (identifier "uVar10") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 2) + 8" (binary_expression "(long)param_3 + (ulong)(byte)(uVar10 + 2)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (call_expression "(ulong)(byte)(uVar10 + 2)" (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(uVar10 + 2)" (( "(") (binary_expression "uVar10 + 2" (identifier "uVar10") (+ "+") (number_literal "2")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "uVar1 = uVar10 + 6;" (assignment_expression "uVar1 = uVar10 + 6" (identifier "uVar1") (= "=") (binary_expression "uVar10 + 6" (identifier "uVar10") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "bVar5 = param_1[3];" (assignment_expression "bVar5 = param_1[3]" (identifier "bVar5") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*param_3 = uVar13;" (assignment_expression "*param_3 = uVar13" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)(uVar10 + 3) & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (parenthesized_expression "((ulong)(uVar10 + 3) & 0xff)" (( "(") (binary_expression "(ulong)(uVar10 + 3) & 0xff" (call_expression "(ulong)(uVar10 + 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar10 + 3)" (( "(") (binary_expression "uVar10 + 3" (identifier "uVar10") (+ "+") (number_literal "3")) () ")"))) (& "&") (number_literal "0xff")) () ")"))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "uVar2 = uVar10 + 7;" (assignment_expression "uVar2 = uVar10 + 7" (identifier "uVar2") (= "=") (binary_expression "uVar10 + 7" (identifier "uVar10") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "bVar5 = param_1[4];" (assignment_expression "bVar5 = param_1[4]" (identifier "bVar5") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar10 = uVar10 + 8;" (assignment_expression "uVar10 = uVar10 + 8" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 8" (identifier "uVar10") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*param_3 = uVar7;" (assignment_expression "*param_3 = uVar7" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + ((ulong)uVar13 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + ((ulong)uVar13 & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)uVar13 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (parenthesized_expression "((ulong)uVar13 & 0xff)" (( "(") (binary_expression "(ulong)uVar13 & 0xff" (cast_expression "(ulong)uVar13" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar13")) (& "&") (number_literal "0xff")) () ")"))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "bVar5 = param_1[5];" (assignment_expression "bVar5 = param_1[5]" (identifier "bVar5") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*param_3 = uVar1;" (assignment_expression "*param_3 = uVar1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(byte)uVar7 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(byte)uVar7 + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(byte)uVar7 + 8" (binary_expression "(long)param_3 + (ulong)(byte)uVar7" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (cast_expression "(ulong)(byte)uVar7" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)uVar7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar7")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "bVar5 = param_1[6];" (assignment_expression "bVar5 = param_1[6]" (identifier "bVar5") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*param_3 = uVar2;" (assignment_expression "*param_3 = uVar2" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + (ulong)(byte)uVar1 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + (ulong)(byte)uVar1 + 8)" (( "(") (binary_expression "(long)param_3 + (ulong)(byte)uVar1 + 8" (binary_expression "(long)param_3 + (ulong)(byte)uVar1" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (cast_expression "(ulong)(byte)uVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)uVar1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar1")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "bVar5 = param_1[7];" (assignment_expression "bVar5 = param_1[7]" (identifier "bVar5") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*param_3 = uVar10;" (assignment_expression "*param_3 = uVar10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);" (assignment_expression "pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_3 + ((ulong)uVar2 & 0xff) + 8)" (( "(") (binary_expression "(long)param_3 + ((ulong)uVar2 & 0xff) + 8" (binary_expression "(long)param_3 + ((ulong)uVar2 & 0xff)" (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")) (+ "+") (parenthesized_expression "((ulong)uVar2 & 0xff)" (( "(") (binary_expression "(ulong)uVar2 & 0xff" (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) (& "&") (number_literal "0xff")) () ")"))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar4 = *pbVar4 ^ bVar5;" (assignment_expression "*pbVar4 = *pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (binary_expression "*pbVar4 ^ bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (^ "^") (identifier "bVar5"))) (; ";")) (} "}"))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);\n    if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }\n  }" ({ "{") (expression_statement "iVar8 = rc4_stream_keystream(param_3,local_138,0x100);" (assignment_expression "iVar8 = rc4_stream_keystream(param_3,local_138,0x100)" (identifier "iVar8") (= "=") (call_expression "rc4_stream_keystream(param_3,local_138,0x100)" (identifier "rc4_stream_keystream") (argument_list "(param_3,local_138,0x100)" (( "(") (identifier "param_3") (, ",") (identifier "local_138") (, ",") (number_literal "0x100") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = 0;\n      uVar10 = (uint)param_2 & 7;\n      if ((param_2 & 7) == 0) goto LAB_00187ef5;\n      if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }\n      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }\n      iVar8 = rc4_stream_setup(param_3,local_138,0x100);\n      if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }\n    }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = (uint)param_2 & 7;" (assignment_expression "uVar10 = (uint)param_2 & 7" (identifier "uVar10") (= "=") (binary_expression "(uint)param_2 & 7" (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((param_2 & 7) == 0) goto LAB_00187ef5;" (if "if") (parenthesized_expression "((param_2 & 7) == 0)" (( "(") (binary_expression "(param_2 & 7) == 0" (parenthesized_expression "(param_2 & 7)" (( "(") (binary_expression "param_2 & 7" (identifier "param_2") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00187ef5;" (goto "goto") (statement_identifier "LAB_00187ef5") (; ";"))) (if_statement "if (uVar10 != 1) {\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }" (if "if") (parenthesized_expression "(uVar10 != 1)" (( "(") (binary_expression "uVar10 != 1" (identifier "uVar10") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        uVar12 = uVar11;\n        if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }\n        uVar11 = uVar12 + 1;\n        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n      }" ({ "{") (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" (identifier "uVar12") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (uVar10 != 2) {\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }" (if "if") (parenthesized_expression "(uVar10 != 2)" (( "(") (binary_expression "uVar10 != 2" (identifier "uVar10") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n          if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }\n          uVar12 = uVar11 + 1;\n          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n        }" ({ "{") (if_statement "if (uVar10 != 3) {\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }" (if "if") (parenthesized_expression "(uVar10 != 3)" (( "(") (binary_expression "uVar10 != 3" (identifier "uVar10") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n            if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }\n            uVar11 = uVar12 + 1;\n            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n          }" ({ "{") (if_statement "if (uVar10 != 4) {\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }" (if "if") (parenthesized_expression "(uVar10 != 4)" (( "(") (binary_expression "uVar10 != 4" (identifier "uVar10") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n              if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }\n              uVar12 = uVar11 + 1;\n              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];\n            }" ({ "{") (if_statement "if (uVar10 != 5) {\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }" (if "if") (parenthesized_expression "(uVar10 != 5)" (( "(") (binary_expression "uVar10 != 5" (identifier "uVar10") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }\n                uVar12 = (ulong)(uVar10 != 6);\n                uVar11 = uVar12 + 1;\n                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];\n              }" ({ "{") (if_statement "if (uVar10 != 6) {\n                  local_138[0] = local_138[0] ^ *param_1;\n                }" (if "if") (parenthesized_expression "(uVar10 != 6)" (( "(") (binary_expression "uVar10 != 6" (identifier "uVar10") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                  local_138[0] = local_138[0] ^ *param_1;\n                }" ({ "{") (expression_statement "local_138[0] = local_138[0] ^ *param_1;" (assignment_expression "local_138[0] = local_138[0] ^ *param_1" (subscript_expression "local_138[0]" (identifier "local_138") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_138[0] ^ *param_1" (subscript_expression "local_138[0]" (identifier "local_138") ([ "[") (number_literal "0") (] "]")) (^ "^") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}"))) (expression_statement "uVar12 = (ulong)(uVar10 != 6);" (assignment_expression "uVar12 = (ulong)(uVar10 != 6)" (identifier "uVar12") (= "=") (call_expression "(ulong)(uVar10 != 6)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar10 != 6)" (( "(") (binary_expression "uVar10 != 6" (identifier "uVar10") (!= "!=") (number_literal "6")) () ")")))) (; ";")) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" (identifier "local_138") ([ "[") (identifier "uVar12") (] "]")) (= "=") (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" (identifier "local_138") ([ "[") (identifier "uVar12") (] "]")) (^ "^") (subscript_expression "param_1[uVar12]" (identifier "param_1") ([ "[") (identifier "uVar12") (] "]")))) (; ";")) (} "}"))) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" (identifier "local_138") ([ "[") (identifier "uVar11") (] "]")) (= "=") (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" (identifier "local_138") ([ "[") (identifier "uVar11") (] "]")) (^ "^") (subscript_expression "param_1[uVar11]" (identifier "param_1") ([ "[") (identifier "uVar11") (] "]")))) (; ";")) (} "}"))) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" (identifier "local_138") ([ "[") (identifier "uVar12") (] "]")) (= "=") (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" (identifier "local_138") ([ "[") (identifier "uVar12") (] "]")) (^ "^") (subscript_expression "param_1[uVar12]" (identifier "param_1") ([ "[") (identifier "uVar12") (] "]")))) (; ";")) (} "}"))) (expression_statement "uVar12 = uVar11 + 1;" (assignment_expression "uVar12 = uVar11 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" (identifier "local_138") ([ "[") (identifier "uVar11") (] "]")) (= "=") (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" (identifier "local_138") ([ "[") (identifier "uVar11") (] "]")) (^ "^") (subscript_expression "param_1[uVar11]" (identifier "param_1") ([ "[") (identifier "uVar11") (] "]")))) (; ";")) (} "}"))) (expression_statement "uVar11 = uVar12 + 1;" (assignment_expression "uVar11 = uVar12 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];" (assignment_expression "local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" (identifier "local_138") ([ "[") (identifier "uVar12") (] "]")) (= "=") (binary_expression "local_138[uVar12] ^ param_1[uVar12]" (subscript_expression "local_138[uVar12]" (identifier "local_138") ([ "[") (identifier "uVar12") (] "]")) (^ "^") (subscript_expression "param_1[uVar12]" (identifier "param_1") ([ "[") (identifier "uVar12") (] "]")))) (; ";")) (} "}"))) (expression_statement "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" (identifier "local_138") ([ "[") (identifier "uVar11") (] "]")) (= "=") (binary_expression "local_138[uVar11] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11]" (identifier "local_138") ([ "[") (identifier "uVar11") (] "]")) (^ "^") (subscript_expression "param_1[uVar11]" (identifier "param_1") ([ "[") (identifier "uVar11") (] "]")))) (; ";")) (for_statement "for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }" (for "for") (( "(") (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";") (binary_expression "param_2 != uVar11" (identifier "param_2") (!= "!=") (identifier "uVar11")) (; ";") (assignment_expression "uVar11 = uVar11 + 8" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 8" (identifier "uVar11") (+ "+") (number_literal "8"))) () ")") (compound_statement "{\nLAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];\n        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];\n        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];\n        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];\n        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];\n        bVar5 = param_1[uVar11 + 6];\n        bVar6 = param_1[uVar11 + 7];\n        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];\n        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;\n        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;\n      }" ({ "{") (labeled_statement "LAB_00187ef5:\n        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];" (statement_identifier "LAB_00187ef5") (: ":") (expression_statement "local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];" (assignment_expression "local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 & 0xff" (identifier "uVar11") (& "&") (number_literal "0xff")) (] "]")) (= "=") (binary_expression "local_138[uVar11 & 0xff] ^ param_1[uVar11]" (subscript_expression "local_138[uVar11 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 & 0xff" (identifier "uVar11") (& "&") (number_literal "0xff")) (] "]")) (^ "^") (subscript_expression "param_1[uVar11]" (identifier "param_1") ([ "[") (identifier "uVar11") (] "]")))) (; ";"))) (expression_statement "local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];" (assignment_expression "local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1]" (subscript_expression "local_138[uVar11 + 1 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 1 & 0xff" (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1")) (& "&") (number_literal "0xff")) (] "]")) (= "=") (binary_expression "local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1]" (subscript_expression "local_138[uVar11 + 1 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 1 & 0xff" (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1")) (& "&") (number_literal "0xff")) (] "]")) (^ "^") (subscript_expression "param_1[uVar11 + 1]" (identifier "param_1") ([ "[") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1")) (] "]")))) (; ";")) (expression_statement "local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];" (assignment_expression "local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2]" (subscript_expression "local_138[uVar11 + 2 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 2 & 0xff" (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2")) (& "&") (number_literal "0xff")) (] "]")) (= "=") (binary_expression "local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2]" (subscript_expression "local_138[uVar11 + 2 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 2 & 0xff" (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2")) (& "&") (number_literal "0xff")) (] "]")) (^ "^") (subscript_expression "param_1[uVar11 + 2]" (identifier "param_1") ([ "[") (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2")) (] "]")))) (; ";")) (expression_statement "local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];" (assignment_expression "local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3]" (subscript_expression "local_138[uVar11 + 3 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 3 & 0xff" (binary_expression "uVar11 + 3" (identifier "uVar11") (+ "+") (number_literal "3")) (& "&") (number_literal "0xff")) (] "]")) (= "=") (binary_expression "local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3]" (subscript_expression "local_138[uVar11 + 3 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 3 & 0xff" (binary_expression "uVar11 + 3" (identifier "uVar11") (+ "+") (number_literal "3")) (& "&") (number_literal "0xff")) (] "]")) (^ "^") (subscript_expression "param_1[uVar11 + 3]" (identifier "param_1") ([ "[") (binary_expression "uVar11 + 3" (identifier "uVar11") (+ "+") (number_literal "3")) (] "]")))) (; ";")) (expression_statement "local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];" (assignment_expression "local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4]" (subscript_expression "local_138[uVar11 + 4 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 4 & 0xff" (binary_expression "uVar11 + 4" (identifier "uVar11") (+ "+") (number_literal "4")) (& "&") (number_literal "0xff")) (] "]")) (= "=") (binary_expression "local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4]" (subscript_expression "local_138[uVar11 + 4 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 4 & 0xff" (binary_expression "uVar11 + 4" (identifier "uVar11") (+ "+") (number_literal "4")) (& "&") (number_literal "0xff")) (] "]")) (^ "^") (subscript_expression "param_1[uVar11 + 4]" (identifier "param_1") ([ "[") (binary_expression "uVar11 + 4" (identifier "uVar11") (+ "+") (number_literal "4")) (] "]")))) (; ";")) (expression_statement "bVar5 = param_1[uVar11 + 6];" (assignment_expression "bVar5 = param_1[uVar11 + 6]" (identifier "bVar5") (= "=") (subscript_expression "param_1[uVar11 + 6]" (identifier "param_1") ([ "[") (binary_expression "uVar11 + 6" (identifier "uVar11") (+ "+") (number_literal "6")) (] "]"))) (; ";")) (expression_statement "bVar6 = param_1[uVar11 + 7];" (assignment_expression "bVar6 = param_1[uVar11 + 7]" (identifier "bVar6") (= "=") (subscript_expression "param_1[uVar11 + 7]" (identifier "param_1") ([ "[") (binary_expression "uVar11 + 7" (identifier "uVar11") (+ "+") (number_literal "7")) (] "]"))) (; ";")) (expression_statement "local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];" (assignment_expression "local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5]" (subscript_expression "local_138[uVar11 + 5 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 5 & 0xff" (binary_expression "uVar11 + 5" (identifier "uVar11") (+ "+") (number_literal "5")) (& "&") (number_literal "0xff")) (] "]")) (= "=") (binary_expression "local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5]" (subscript_expression "local_138[uVar11 + 5 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 5 & 0xff" (binary_expression "uVar11 + 5" (identifier "uVar11") (+ "+") (number_literal "5")) (& "&") (number_literal "0xff")) (] "]")) (^ "^") (subscript_expression "param_1[uVar11 + 5]" (identifier "param_1") ([ "[") (binary_expression "uVar11 + 5" (identifier "uVar11") (+ "+") (number_literal "5")) (] "]")))) (; ";")) (expression_statement "local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;" (assignment_expression "local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5" (subscript_expression "local_138[uVar11 + 6 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 6 & 0xff" (binary_expression "uVar11 + 6" (identifier "uVar11") (+ "+") (number_literal "6")) (& "&") (number_literal "0xff")) (] "]")) (= "=") (binary_expression "local_138[uVar11 + 6 & 0xff] ^ bVar5" (subscript_expression "local_138[uVar11 + 6 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 6 & 0xff" (binary_expression "uVar11 + 6" (identifier "uVar11") (+ "+") (number_literal "6")) (& "&") (number_literal "0xff")) (] "]")) (^ "^") (identifier "bVar5"))) (; ";")) (expression_statement "local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;" (assignment_expression "local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6" (subscript_expression "local_138[uVar11 + 7 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 7 & 0xff" (binary_expression "uVar11 + 7" (identifier "uVar11") (+ "+") (number_literal "7")) (& "&") (number_literal "0xff")) (] "]")) (= "=") (binary_expression "local_138[uVar11 + 7 & 0xff] ^ bVar6" (subscript_expression "local_138[uVar11 + 7 & 0xff]" (identifier "local_138") ([ "[") (binary_expression "uVar11 + 7 & 0xff" (binary_expression "uVar11 + 7" (identifier "uVar11") (+ "+") (number_literal "7")) (& "&") (number_literal "0xff")) (] "]")) (^ "^") (identifier "bVar6"))) (; ";")) (} "}"))) (expression_statement "iVar8 = rc4_stream_setup(param_3,local_138,0x100);" (assignment_expression "iVar8 = rc4_stream_setup(param_3,local_138,0x100)" (identifier "iVar8") (= "=") (call_expression "rc4_stream_setup(param_3,local_138,0x100)" (identifier "rc4_stream_setup") (argument_list "(param_3,local_138,0x100)" (( "(") (identifier "param_3") (, ",") (identifier "local_138") (, ",") (number_literal "0x100") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar9 = 0xc;\n        do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);\n        zeromem(local_138,0x100);\n      }" ({ "{") (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" (identifier "lVar9") (= "=") (number_literal "0xc")) (; ";")) (do_statement "do {\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        } while (lVar9 != 0);" (do "do") (compound_statement "{\n          rc4_stream_keystream(param_3,local_138,0x100);\n          lVar9 = lVar9 + -1;\n        }" ({ "{") (expression_statement "rc4_stream_keystream(param_3,local_138,0x100);" (call_expression "rc4_stream_keystream(param_3,local_138,0x100)" (identifier "rc4_stream_keystream") (argument_list "(param_3,local_138,0x100)" (( "(") (identifier "param_3") (, ",") (identifier "local_138") (, ",") (number_literal "0x100") () ")"))) (; ";")) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar9 != 0)" (( "(") (binary_expression "lVar9 != 0" (identifier "lVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "zeromem(local_138,0x100);" (call_expression "zeromem(local_138,0x100)" (identifier "zeromem") (argument_list "(local_138,0x100)" (( "(") (identifier "local_138") (, ",") (number_literal "0x100") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_30 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_30 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}")))

int function_1(type_1 *var_4,type_2 var_5,type_3 *var_2)

{
  type_4 uVar1;
  type_4 uVar2;
  type_5 *var_10;
  type_5 var_8;
  type_5 var_15;
  long var_19;
  type_4 var_9;
  int var_12;
  long var_17;
  type_4 var_7;
  type_2 var_14;
  type_2 var_13;
  type_4 var_6;
  long var_1;
  type_1 buf [256];
  
  var_19 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("prng != NULL","src/prngs/rc4.c",0x3e);
  }
  if (var_4 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("in != NULL","src/prngs/rc4.c",0x3f);
  }
  if (var_5 == 0) {
                    /* WARNING: Subroutine does not return */
    var_3("inlen > 0","src/prngs/rc4.c",0x40);
  }
  if (var_2->ready == 0) {
    var_7 = (var_2->field_0).rc4.s.x;
    var_10 = var_4 + var_5;
    var_6 = (type_4)var_5 & 7;
    if ((var_5 & 7) == 0) goto LAB_00187d4f;
    if (var_6 != 1) {
      var_9 = var_7;
      if (var_6 != 2) {
        if (var_6 != 3) {
          if (var_6 != 4) {
            if (var_6 != 5) {
              if (var_6 != 6) {
                var_9 = var_7 + 1;
                var_8 = *var_4;
                var_4 = var_4 + 1;
                (var_2->field_0).rc4.s.x = var_9;
                (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] =
                     (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] ^ var_8;
              }
              var_7 = var_9 + 1;
              var_8 = *var_4;
              var_4 = var_4 + 1;
              (var_2->field_0).rc4.s.x = var_7;
              (var_2->field_0).dummy[(type_2)(var_9 & 0xff) + 8] =
                   (var_2->field_0).dummy[(type_2)(var_9 & 0xff) + 8] ^ var_8;
            }
            var_9 = var_7 + 1;
            var_8 = *var_4;
            var_4 = var_4 + 1;
            (var_2->field_0).rc4.s.x = var_9;
            (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] =
                 (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] ^ var_8;
          }
          var_7 = var_9 + 1;
          var_8 = *var_4;
          var_4 = var_4 + 1;
          (var_2->field_0).rc4.s.x = var_7;
          (var_2->field_0).dummy[(type_2)(var_9 & 0xff) + 8] =
               (var_2->field_0).dummy[(type_2)(var_9 & 0xff) + 8] ^ var_8;
        }
        var_9 = var_7 + 1;
        var_8 = *var_4;
        var_4 = var_4 + 1;
        (var_2->field_0).rc4.s.x = var_9;
        (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] =
             (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] ^ var_8;
      }
      var_7 = var_9 + 1;
      var_8 = *var_4;
      var_4 = var_4 + 1;
      (var_2->field_0).rc4.s.x = var_7;
      (var_2->field_0).dummy[(type_2)(var_9 & 0xff) + 8] =
           (var_2->field_0).dummy[(type_2)(var_9 & 0xff) + 8] ^ var_8;
    }
    var_8 = *var_4;
    (var_2->field_0).rc4.s.x = var_7 + 1;
    (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] =
         (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] ^ var_8;
    var_7 = var_7 + 1;
    for (var_4 = var_4 + 1; var_4 != var_10; var_4 = var_4 + 8) {
LAB_00187d4f:
      var_8 = *var_4;
      (var_2->field_0).rc4.s.x = var_7 + 1;
      (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] =
           (var_2->field_0).dummy[(type_2)(var_7 & 0xff) + 8] ^ var_8;
      var_8 = var_4[1];
      var_6 = var_7 + 4;
      (var_2->field_0).rc4.s.x = var_7 + 2;
      var_9 = var_7 + 5;
      (var_2->field_0).dummy[(type_2)(type_5)(var_7 + 1) + 8] =
           (var_2->field_0).dummy[(type_2)(type_5)(var_7 + 1) + 8] ^ var_8;
      var_8 = var_4[2];
      (var_2->field_0).rc4.s.x = var_7 + 3;
      (var_2->field_0).dummy[(type_2)(type_5)(var_7 + 2) + 8] =
           (var_2->field_0).dummy[(type_2)(type_5)(var_7 + 2) + 8] ^ var_8;
      uVar1 = var_7 + 6;
      var_8 = var_4[3];
      (var_2->field_0).rc4.s.x = var_6;
      (var_2->field_0).dummy[((type_2)(var_7 + 3) & 0xff) + 8] =
           (var_2->field_0).dummy[((type_2)(var_7 + 3) & 0xff) + 8] ^ var_8;
      uVar2 = var_7 + 7;
      var_8 = var_4[4];
      var_7 = var_7 + 8;
      (var_2->field_0).rc4.s.x = var_9;
      (var_2->field_0).dummy[((type_2)var_6 & 0xff) + 8] =
           (var_2->field_0).dummy[((type_2)var_6 & 0xff) + 8] ^ var_8;
      var_8 = var_4[5];
      (var_2->field_0).rc4.s.x = uVar1;
      (var_2->field_0).dummy[(type_2)(type_5)var_9 + 8] =
           (var_2->field_0).dummy[(type_2)(type_5)var_9 + 8] ^ var_8;
      var_8 = var_4[6];
      (var_2->field_0).rc4.s.x = uVar2;
      (var_2->field_0).dummy[(type_2)(type_5)uVar1 + 8] =
           (var_2->field_0).dummy[(type_2)(type_5)uVar1 + 8] ^ var_8;
      var_8 = var_4[7];
      (var_2->field_0).rc4.s.x = var_7;
      (var_2->field_0).dummy[((type_2)uVar2 & 0xff) + 8] =
           (var_2->field_0).dummy[((type_2)uVar2 & 0xff) + 8] ^ var_8;
    }
    var_12 = 0;
  }
  else {
    var_12 = var_11((type_6 *)var_2,buf,0x100);
    if (var_12 == 0) {
      var_14 = 0;
      var_7 = (type_4)var_5 & 7;
      if ((var_5 & 7) == 0) goto LAB_00187ef5;
      if (var_7 != 1) {
        var_13 = var_14;
        if (var_7 != 2) {
          if (var_7 != 3) {
            if (var_7 != 4) {
              if (var_7 != 5) {
                if (var_7 != 6) {
                  buf[0] = buf[0] ^ *var_4;
                }
                var_13 = (type_2)(var_7 != 6);
                var_14 = var_13 + 1;
                buf[var_13] = buf[var_13] ^ var_4[var_13];
              }
              var_13 = var_14 + 1;
              buf[var_14] = buf[var_14] ^ var_4[var_14];
            }
            var_14 = var_13 + 1;
            buf[var_13] = buf[var_13] ^ var_4[var_13];
          }
          var_13 = var_14 + 1;
          buf[var_14] = buf[var_14] ^ var_4[var_14];
        }
        var_14 = var_13 + 1;
        buf[var_13] = buf[var_13] ^ var_4[var_13];
      }
      buf[var_14] = buf[var_14] ^ var_4[var_14];
      for (var_14 = var_14 + 1; var_5 != var_14; var_14 = var_14 + 8) {
LAB_00187ef5:
        buf[var_14 & 0xff] = buf[var_14 & 0xff] ^ var_4[var_14];
        buf[var_14 + 1 & 0xff] = buf[var_14 + 1 & 0xff] ^ var_4[var_14 + 1];
        buf[var_14 + 2 & 0xff] = buf[var_14 + 2 & 0xff] ^ var_4[var_14 + 2];
        buf[var_14 + 3 & 0xff] = buf[var_14 + 3 & 0xff] ^ var_4[var_14 + 3];
        buf[var_14 + 4 & 0xff] = buf[var_14 + 4 & 0xff] ^ var_4[var_14 + 4];
        var_8 = var_4[var_14 + 6];
        var_15 = var_4[var_14 + 7];
        buf[var_14 + 5 & 0xff] = buf[var_14 + 5 & 0xff] ^ var_4[var_14 + 5];
        buf[var_14 + 6 & 0xff] = buf[var_14 + 6 & 0xff] ^ var_8;
        buf[var_14 + 7 & 0xff] = buf[var_14 + 7 & 0xff] ^ var_15;
      }
      var_12 = var_16((type_6 *)var_2,buf,0x100);
      if (var_12 == 0) {
        var_17 = 0xc;
        do {
          var_11((type_6 *)var_2,buf,0x100);
          var_17 = var_17 + -1;
        } while (var_17 != 0);
        var_18(buf,0x100);
      }
    }
  }
  if (var_19 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_20();
  }
  return var_12;
}


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

int MASKED(byte *param_1,ulong param_2,uint *param_3)

{
  uint uVar1;
  uint uVar2;
  byte *pbVar3;
  byte *pbVar4;
  byte bVar5;
  byte bVar6;
  uint uVar7;
  int iVar8;
  long lVar9;
  uint uVar10;
  ulong uVar11;
  ulong uVar12;
  uint uVar13;
  long in_FS_OFFSET;
  byte local_138 [264];
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_3 == (uint *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("prng != NULL","src/prngs/rc4.c",0x3e);
  }
  if (param_1 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/prngs/rc4.c",0x3f);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("inlen > 0","src/prngs/rc4.c",0x40);
  }
  if ((short)param_3[0x113c] == 0) {
    uVar10 = *param_3;
    pbVar3 = param_1 + param_2;
    uVar13 = (uint)param_2 & 7;
    if ((param_2 & 7) == 0) goto LAB_00187d4f;
    if (uVar13 != 1) {
      uVar7 = uVar10;
      if (uVar13 != 2) {
        if (uVar13 != 3) {
          if (uVar13 != 4) {
            if (uVar13 != 5) {
              if (uVar13 != 6) {
                uVar7 = uVar10 + 1;
                bVar5 = *param_1;
                param_1 = param_1 + 1;
                *param_3 = uVar7;
                pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
                *pbVar4 = *pbVar4 ^ bVar5;
              }
              uVar10 = uVar7 + 1;
              bVar5 = *param_1;
              param_1 = param_1 + 1;
              *param_3 = uVar10;
              pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);
              *pbVar4 = *pbVar4 ^ bVar5;
            }
            uVar7 = uVar10 + 1;
            bVar5 = *param_1;
            param_1 = param_1 + 1;
            *param_3 = uVar7;
            pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
            *pbVar4 = *pbVar4 ^ bVar5;
          }
          uVar10 = uVar7 + 1;
          bVar5 = *param_1;
          param_1 = param_1 + 1;
          *param_3 = uVar10;
          pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);
          *pbVar4 = *pbVar4 ^ bVar5;
        }
        uVar7 = uVar10 + 1;
        bVar5 = *param_1;
        param_1 = param_1 + 1;
        *param_3 = uVar7;
        pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
        *pbVar4 = *pbVar4 ^ bVar5;
      }
      uVar10 = uVar7 + 1;
      bVar5 = *param_1;
      param_1 = param_1 + 1;
      *param_3 = uVar10;
      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar7 & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
    }
    bVar5 = *param_1;
    *param_3 = uVar10 + 1;
    pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
    *pbVar4 = *pbVar4 ^ bVar5;
    uVar10 = uVar10 + 1;
    for (param_1 = param_1 + 1; param_1 != pbVar3; param_1 = param_1 + 8) {
LAB_00187d4f:
      bVar5 = *param_1;
      *param_3 = uVar10 + 1;
      pbVar4 = (byte *)((long)param_3 + (ulong)(uVar10 & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[1];
      uVar13 = uVar10 + 4;
      *param_3 = uVar10 + 2;
      uVar7 = uVar10 + 5;
      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 1) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[2];
      *param_3 = uVar10 + 3;
      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)(uVar10 + 2) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      uVar1 = uVar10 + 6;
      bVar5 = param_1[3];
      *param_3 = uVar13;
      pbVar4 = (byte *)((long)param_3 + ((ulong)(uVar10 + 3) & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      uVar2 = uVar10 + 7;
      bVar5 = param_1[4];
      uVar10 = uVar10 + 8;
      *param_3 = uVar7;
      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar13 & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[5];
      *param_3 = uVar1;
      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar7 + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[6];
      *param_3 = uVar2;
      pbVar4 = (byte *)((long)param_3 + (ulong)(byte)uVar1 + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
      bVar5 = param_1[7];
      *param_3 = uVar10;
      pbVar4 = (byte *)((long)param_3 + ((ulong)uVar2 & 0xff) + 8);
      *pbVar4 = *pbVar4 ^ bVar5;
    }
    iVar8 = 0;
  }
  else {
    iVar8 = rc4_stream_keystream(param_3,local_138,0x100);
    if (iVar8 == 0) {
      uVar11 = 0;
      uVar10 = (uint)param_2 & 7;
      if ((param_2 & 7) == 0) goto LAB_00187ef5;
      if (uVar10 != 1) {
        uVar12 = uVar11;
        if (uVar10 != 2) {
          if (uVar10 != 3) {
            if (uVar10 != 4) {
              if (uVar10 != 5) {
                if (uVar10 != 6) {
                  local_138[0] = local_138[0] ^ *param_1;
                }
                uVar12 = (ulong)(uVar10 != 6);
                uVar11 = uVar12 + 1;
                local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];
              }
              uVar12 = uVar11 + 1;
              local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];
            }
            uVar11 = uVar12 + 1;
            local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];
          }
          uVar12 = uVar11 + 1;
          local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];
        }
        uVar11 = uVar12 + 1;
        local_138[uVar12] = local_138[uVar12] ^ param_1[uVar12];
      }
      local_138[uVar11] = local_138[uVar11] ^ param_1[uVar11];
      for (uVar11 = uVar11 + 1; param_2 != uVar11; uVar11 = uVar11 + 8) {
LAB_00187ef5:
        local_138[uVar11 & 0xff] = local_138[uVar11 & 0xff] ^ param_1[uVar11];
        local_138[uVar11 + 1 & 0xff] = local_138[uVar11 + 1 & 0xff] ^ param_1[uVar11 + 1];
        local_138[uVar11 + 2 & 0xff] = local_138[uVar11 + 2 & 0xff] ^ param_1[uVar11 + 2];
        local_138[uVar11 + 3 & 0xff] = local_138[uVar11 + 3 & 0xff] ^ param_1[uVar11 + 3];
        local_138[uVar11 + 4 & 0xff] = local_138[uVar11 + 4 & 0xff] ^ param_1[uVar11 + 4];
        bVar5 = param_1[uVar11 + 6];
        bVar6 = param_1[uVar11 + 7];
        local_138[uVar11 + 5 & 0xff] = local_138[uVar11 + 5 & 0xff] ^ param_1[uVar11 + 5];
        local_138[uVar11 + 6 & 0xff] = local_138[uVar11 + 6 & 0xff] ^ bVar5;
        local_138[uVar11 + 7 & 0xff] = local_138[uVar11 + 7 & 0xff] ^ bVar6;
      }
      iVar8 = rc4_stream_setup(param_3,local_138,0x100);
      if (iVar8 == 0) {
        lVar9 = 0xc;
        do {
          rc4_stream_keystream(param_3,local_138,0x100);
          lVar9 = lVar9 + -1;
        } while (lVar9 != 0);
        zeromem(local_138,0x100);
      }
    }
  }
  if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar8;
}

