
int whirlpool_done(hash_state *md,uchar *out)

{
  uint uVar1;
  int iVar2;
  long lVar4;
  uint uVar5;
  ulong uVar6;
  ulong uVar3;
  
  if (md == (hash_state *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);
  }
  if (out == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);
  }
  uVar5 = (md->whirlpool).curlen;
  if (0x3f < uVar5) {
    return 0x10;
  }
  uVar1 = uVar5 + 1;
  uVar3 = (ulong)uVar1;
  uVar6 = (ulong)(uVar5 * 8) + (long)md->data;
  (md->chc).length = uVar6;
  (md->whirlpool).curlen = uVar1;
  md->dummy[(ulong)uVar5 + 0x48] = -0x80;
  if (uVar1 < 0x21) goto LAB_00156a56;
  if (uVar1 != 0x40) {
    md->dummy[uVar3 + 0x48] = '\0';
    lVar4 = uVar3 + 1;
    uVar5 = ~uVar1 & 7;
    if ((uint)lVar4 < 0x40) {
      if (uVar5 != 0) {
        if (uVar5 != 1) {
          if (uVar5 != 2) {
            if (uVar5 != 3) {
              if (uVar5 != 4) {
                if (uVar5 != 5) {
                  if (uVar5 != 6) {
                    md->dummy[uVar3 + 0x49] = '\0';
                    lVar4 = uVar3 + 2;
                  }
                  md->dummy[lVar4 + 0x48] = '\0';
                  lVar4 = lVar4 + 1;
                }
                md->dummy[lVar4 + 0x48] = '\0';
                lVar4 = lVar4 + 1;
              }
              md->dummy[lVar4 + 0x48] = '\0';
              lVar4 = lVar4 + 1;
            }
            md->dummy[lVar4 + 0x48] = '\0';
            lVar4 = lVar4 + 1;
          }
          md->dummy[lVar4 + 0x48] = '\0';
          lVar4 = lVar4 + 1;
        }
        md->dummy[lVar4 + 0x48] = '\0';
        lVar4 = lVar4 + 1;
        if (0x3f < (uint)lVar4) goto LAB_00156a3c;
      }
      do {
        md->dummy[lVar4 + 0x48] = '\0';
        md->dummy[lVar4 + 0x49] = '\0';
        md->dummy[lVar4 + 0x4a] = '\0';
        md->dummy[lVar4 + 0x4b] = '\0';
        md->dummy[lVar4 + 0x4c] = '\0';
        md->dummy[lVar4 + 0x4d] = '\0';
        md->dummy[lVar4 + 0x4e] = '\0';
        md->dummy[lVar4 + 0x4f] = '\0';
        lVar4 = lVar4 + 8;
      } while ((uint)lVar4 < 0x40);
    }
LAB_00156a3c:
    (md->whirlpool).curlen = 0x40;
  }
  whirlpool_compress(md,(md->chc).state + 0x40);
  uVar6 = (md->chc).length;
  uVar3 = 0;
LAB_00156a56:
  uVar5 = (uint)uVar3;
  uVar1 = -uVar5 & 7;
  if (uVar1 == 0) goto LAB_00156ad0;
  if (uVar1 != 1) {
    if (uVar1 != 2) {
      if (uVar1 != 3) {
        if (uVar1 != 4) {
          if (uVar1 != 5) {
            if (uVar1 != 6) {
              uVar5 = uVar5 + 1;
              md->dummy[uVar3 + 0x48] = '\0';
            }
            uVar3 = (ulong)uVar5;
            uVar5 = uVar5 + 1;
            md->dummy[uVar3 + 0x48] = '\0';
          }
          uVar3 = (ulong)uVar5;
          uVar5 = uVar5 + 1;
          md->dummy[uVar3 + 0x48] = '\0';
        }
        uVar3 = (ulong)uVar5;
        uVar5 = uVar5 + 1;
        md->dummy[uVar3 + 0x48] = '\0';
      }
      uVar3 = (ulong)uVar5;
      uVar5 = uVar5 + 1;
      md->dummy[uVar3 + 0x48] = '\0';
    }
    uVar3 = (ulong)uVar5;
    uVar5 = uVar5 + 1;
    md->dummy[uVar3 + 0x48] = '\0';
  }
  md->dummy[(ulong)uVar5 + 0x48] = '\0';
  uVar5 = uVar5 + 1;
  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {
LAB_00156ad0:
    iVar2 = (int)uVar3;
    md->dummy[uVar3 + 0x48] = '\0';
    md->dummy[(ulong)(iVar2 + 1) + 0x48] = '\0';
    md->dummy[(ulong)(iVar2 + 2) + 0x48] = '\0';
    md->dummy[(ulong)(iVar2 + 3) + 0x48] = '\0';
    md->dummy[(ulong)(iVar2 + 4) + 0x48] = '\0';
    md->dummy[(ulong)(iVar2 + 5) + 0x48] = '\0';
    md->dummy[(ulong)(iVar2 + 6) + 0x48] = '\0';
    md->dummy[(ulong)(iVar2 + 7) + 0x48] = '\0';
    uVar5 = iVar2 + 8;
  }
  (md->whirlpool).curlen = 0x38;
  (md->sha3).s[0xf] =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  whirlpool_compress(md,(md->chc).state + 0x40);
  uVar6 = (md->whirlpool).state[0];
  *(ulong *)out =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = (md->whirlpool).state[1];
  *(ulong *)(out + 8) =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = (md->whirlpool).state[2];
  *(ulong *)(out + 0x10) =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = (md->whirlpool).state[3];
  *(ulong *)(out + 0x18) =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = (md->whirlpool).state[4];
  *(ulong *)(out + 0x20) =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = (md->whirlpool).state[5];
  *(ulong *)(out + 0x28) =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = (md->whirlpool).state[6];
  *(ulong *)(out + 0x30) =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = (md->whirlpool).state[7];
  *(ulong *)(out + 0x38) =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  return 0;
}



undefined8 whirlpool_done(ulong *param_1,ulong *param_2)

{
  uint uVar1;
  int iVar2;
  long lVar4;
  uint uVar5;
  ulong uVar6;
  ulong uVar3;
  
  if (param_1 == (ulong *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);
  }
  if (param_2 == (ulong *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);
  }
  uVar5 = (uint)param_1[0x11];
  if (0x3f < uVar5) {
    return 0x10;
  }
  uVar1 = uVar5 + 1;
  uVar3 = (ulong)uVar1;
  uVar6 = (ulong)(uVar5 * 8) + *param_1;
  *param_1 = uVar6;
  *(uint *)(param_1 + 0x11) = uVar1;
  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;
  if (uVar1 < 0x21) goto LAB_00156a56;
  if (uVar1 != 0x40) {
    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
    lVar4 = uVar3 + 1;
    uVar5 = ~uVar1 & 7;
    if ((uint)lVar4 < 0x40) {
      if (uVar5 != 0) {
        if (uVar5 != 1) {
          if (uVar5 != 2) {
            if (uVar5 != 3) {
              if (uVar5 != 4) {
                if (uVar5 != 5) {
                  if (uVar5 != 6) {
                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;
                    lVar4 = uVar3 + 2;
                  }
                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
                  lVar4 = lVar4 + 1;
                }
                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
                lVar4 = lVar4 + 1;
              }
              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
              lVar4 = lVar4 + 1;
            }
            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
            lVar4 = lVar4 + 1;
          }
          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
          lVar4 = lVar4 + 1;
        }
        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
        lVar4 = lVar4 + 1;
        if (0x3f < (uint)lVar4) goto LAB_00156a3c;
      }
      do {
        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;
        lVar4 = lVar4 + 8;
      } while ((uint)lVar4 < 0x40);
    }
LAB_00156a3c:
    *(undefined4 *)(param_1 + 0x11) = 0x40;
  }
  FUN_001561c0(param_1,param_1 + 9);
  uVar6 = *param_1;
  uVar3 = 0;
LAB_00156a56:
  uVar5 = (uint)uVar3;
  uVar1 = -uVar5 & 7;
  if (uVar1 == 0) goto LAB_00156ad0;
  if (uVar1 != 1) {
    if (uVar1 != 2) {
      if (uVar1 != 3) {
        if (uVar1 != 4) {
          if (uVar1 != 5) {
            if (uVar1 != 6) {
              uVar5 = uVar5 + 1;
              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
            }
            uVar3 = (ulong)uVar5;
            uVar5 = uVar5 + 1;
            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
          }
          uVar3 = (ulong)uVar5;
          uVar5 = uVar5 + 1;
          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
        }
        uVar3 = (ulong)uVar5;
        uVar5 = uVar5 + 1;
        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
      }
      uVar3 = (ulong)uVar5;
      uVar5 = uVar5 + 1;
      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
    }
    uVar3 = (ulong)uVar5;
    uVar5 = uVar5 + 1;
    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
  }
  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;
  uVar5 = uVar5 + 1;
  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {
LAB_00156ad0:
    iVar2 = (int)uVar3;
    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;
    uVar5 = iVar2 + 8;
  }
  *(undefined4 *)(param_1 + 0x11) = 0x38;
  param_1[0x10] =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  FUN_001561c0(param_1,param_1 + 9);
  uVar6 = param_1[1];
  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[2];
  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[3];
  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[4];
  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[5];
  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[6];
  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[7];
  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[8];
  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  return 0;
}


PUSH R12
PUSH RBP
PUSH RBX
TEST RDI,RDI
JZ 0x00156bc5
MOV RBP,RSI
TEST RSI,RSI
JZ 0x00156bad
MOV ECX,dword ptr [RDI + 0x88]
MOV RBX,RDI
MOV EAX,0x10
CMP ECX,0x3f
JA 0x00156b9a
LEA ESI,[RCX*0x8]
LEA EAX,[RCX + 0x1]
ADD RSI,qword ptr [RDI]
MOV qword ptr [RDI],RSI
LEA R12,[RDI + 0x48]
MOV dword ptr [RDI + 0x88],EAX
MOV byte ptr [RDI + RCX*0x1 + 0x48],0x80
CMP EAX,0x20
JBE 0x00156a56
CMP EAX,0x40
JZ 0x00156a46
MOV EDX,EAX
MOV byte ptr [RDI + RAX*0x1 + 0x48],0x0
ADD RAX,0x1
NOT EDX
AND EDX,0x7
CMP EAX,0x3f
JA 0x00156a3c
TEST EDX,EDX
JZ 0x00156a0b
CMP EDX,0x1
JZ 0x001569fd
CMP EDX,0x2
JZ 0x001569f4
CMP EDX,0x3
JZ 0x001569eb
CMP EDX,0x4
JZ 0x001569e2
CMP EDX,0x5
JZ 0x001569d9
CMP EDX,0x6
JNZ 0x00156b9f
MOV byte ptr [RBX + RAX*0x1 + 0x48],0x0
ADD RAX,0x1
MOV byte ptr [RBX + RAX*0x1 + 0x48],0x0
ADD RAX,0x1
MOV byte ptr [RBX + RAX*0x1 + 0x48],0x0
ADD RAX,0x1
MOV byte ptr [RBX + RAX*0x1 + 0x48],0x0
ADD RAX,0x1
MOV byte ptr [RBX + RAX*0x1 + 0x48],0x0
ADD RAX,0x1
MOV byte ptr [RBX + RAX*0x1 + 0x48],0x0
ADD RAX,0x1
CMP EAX,0x3f
JA 0x00156a3c
MOV byte ptr [RBX + RAX*0x1 + 0x48],0x0
MOV byte ptr [RBX + RAX*0x1 + 0x49],0x0
MOV byte ptr [RBX + RAX*0x1 + 0x4a],0x0
MOV byte ptr [RBX + RAX*0x1 + 0x4b],0x0
MOV byte ptr [RBX + RAX*0x1 + 0x4c],0x0
MOV byte ptr [RBX + RAX*0x1 + 0x4d],0x0
MOV byte ptr [RBX + RAX*0x1 + 0x4e],0x0
MOV byte ptr [RBX + RAX*0x1 + 0x4f],0x0
ADD RAX,0x8
CMP EAX,0x3f
JBE 0x00156a0b
MOV dword ptr [RBX + 0x88],0x40
MOV RSI,R12
MOV RDI,RBX
CALL 0x001561c0
MOV RSI,qword ptr [RBX]
XOR EAX,EAX
MOV EDI,EAX
NEG EDI
AND EDI,0x7
JZ 0x00156ad0
CMP EDI,0x1
JZ 0x00156ac1
CMP EDI,0x2
JZ 0x00156ab7
CMP EDI,0x3
JZ 0x00156aad
CMP EDI,0x4
JZ 0x00156aa1
CMP EDI,0x5
JZ 0x00156a95
CMP EDI,0x6
JZ 0x00156a89
MOV R8D,EAX
ADD EAX,0x1
MOV byte ptr [RBX + R8*0x1 + 0x48],0x0
MOV R9D,EAX
ADD EAX,0x1
MOV byte ptr [RBX + R9*0x1 + 0x48],0x0
MOV R10D,EAX
ADD EAX,0x1
MOV byte ptr [RBX + R10*0x1 + 0x48],0x0
MOV R11D,EAX
ADD EAX,0x1
MOV byte ptr [RBX + R11*0x1 + 0x48],0x0
MOV ECX,EAX
ADD EAX,0x1
MOV byte ptr [RBX + RCX*0x1 + 0x48],0x0
MOV EDX,EAX
ADD EAX,0x1
MOV byte ptr [RBX + RDX*0x1 + 0x48],0x0
MOV EDI,EAX
ADD EAX,0x1
MOV byte ptr [RBX + RDI*0x1 + 0x48],0x0
CMP EAX,0x38
JZ 0x00156b21
MOV R8D,EAX
LEA R9D,[RAX + 0x1]
LEA R10D,[RAX + 0x2]
MOV byte ptr [RBX + R8*0x1 + 0x48],0x0
LEA R11D,[RAX + 0x3]
LEA ECX,[RAX + 0x4]
LEA EDX,[RAX + 0x5]
LEA EDI,[RAX + 0x6]
MOV byte ptr [RBX + R9*0x1 + 0x48],0x0
LEA R8D,[RAX + 0x7]
ADD EAX,0x8
MOV byte ptr [RBX + R10*0x1 + 0x48],0x0
MOV byte ptr [RBX + R11*0x1 + 0x48],0x0
MOV byte ptr [RBX + RCX*0x1 + 0x48],0x0
MOV byte ptr [RBX + RDX*0x1 + 0x48],0x0
MOV byte ptr [RBX + RDI*0x1 + 0x48],0x0
MOV byte ptr [RBX + R8*0x1 + 0x48],0x0
CMP EAX,0x38
JNZ 0x00156ad0
MOV dword ptr [RBX + 0x88],0x38
BSWAP RSI
MOV RDI,RBX
MOV qword ptr [RBX + 0x80],RSI
MOV RSI,R12
CALL 0x001561c0
MOV R12,qword ptr [RBX + 0x8]
BSWAP R12
MOV qword ptr [RBP],R12
MOV RSI,qword ptr [RBX + 0x10]
BSWAP RSI
MOV qword ptr [RBP + 0x8],RSI
MOV RAX,qword ptr [RBX + 0x18]
BSWAP RAX
MOV qword ptr [RBP + 0x10],RAX
MOV R9,qword ptr [RBX + 0x20]
XOR EAX,EAX
BSWAP R9
MOV qword ptr [RBP + 0x18],R9
MOV R10,qword ptr [RBX + 0x28]
BSWAP R10
MOV qword ptr [RBP + 0x20],R10
MOV R11,qword ptr [RBX + 0x30]
BSWAP R11
MOV qword ptr [RBP + 0x28],R11
MOV RCX,qword ptr [RBX + 0x38]
BSWAP RCX
MOV qword ptr [RBP + 0x30],RCX
MOV RBX,qword ptr [RBX + 0x40]
BSWAP RBX
MOV qword ptr [RBP + 0x38],RBX
POP RBX
POP RBP
POP R12
RET
MOV byte ptr [RDI + RAX*0x1 + 0x48],0x0
ADD RAX,0x1
JMP 0x001569d0
MOV EDX,0x9a
LEA RSI,[0x1b1320]
LEA RDI,[0x1a87a1]
CALL 0x00114270
MOV EDX,0x99
LEA RSI,[0x1b1320]
LEA RDI,[0x1ae595]
CALL 0x00114270
(translation_unit "undefined8 whirlpool_done(ulong *param_1,ulong *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (param_1 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (param_2 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (uint)param_1[0x11];\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + *param_1;\n  *param_1 = uVar6;\n  *(uint *)(param_1 + 0x11) = uVar1;\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = *param_1;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }\n  *(undefined4 *)(param_1 + 0x11) = 0x38;\n  param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = param_1[1];\n  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[2];\n  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[3];\n  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[4];\n  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[5];\n  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[6];\n  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[7];\n  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[8];\n  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}\n\n" (function_definition "undefined8 whirlpool_done(ulong *param_1,ulong *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (param_1 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (param_2 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (uint)param_1[0x11];\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + *param_1;\n  *param_1 = uVar6;\n  *(uint *)(param_1 + 0x11) = uVar1;\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = *param_1;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }\n  *(undefined4 *)(param_1 + 0x11) = 0x38;\n  param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = param_1[1];\n  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[2];\n  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[3];\n  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[4];\n  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[5];\n  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[6];\n  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[7];\n  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[8];\n  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}" type_identifier (function_declarator "whirlpool_done(ulong *param_1,ulong *param_2)" identifier (parameter_list "(ulong *param_1,ulong *param_2)" ( (parameter_declaration "ulong *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (param_1 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (param_2 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (uint)param_1[0x11];\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + *param_1;\n  *param_1 = uVar6;\n  *(uint *)(param_1 + 0x11) = uVar1;\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = *param_1;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }\n  *(undefined4 *)(param_1 + 0x11) = 0x38;\n  param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = param_1[1];\n  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[2];\n  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[3];\n  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[4];\n  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[5];\n  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[6];\n  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[7];\n  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[8];\n  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (if_statement "if (param_1 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }" if (parenthesized_expression "(param_1 == (ulong *)0x0)" ( (binary_expression "param_1 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }" { comment (expression_statement "crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);" (call_expression "crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99)" identifier (argument_list "("md != NULL","src/hashes/whirl/whirl.c",0x99)" ( (string_literal ""md != NULL"" " string_content ") , (string_literal ""src/hashes/whirl/whirl.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }" if (parenthesized_expression "(param_2 == (ulong *)0x0)" ( (binary_expression "param_2 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }" { comment (expression_statement "crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);" (call_expression "crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a)" identifier (argument_list "("out != NULL","src/hashes/whirl/whirl.c",0x9a)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/hashes/whirl/whirl.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar5 = (uint)param_1[0x11];" (assignment_expression "uVar5 = (uint)param_1[0x11]" identifier = (cast_expression "(uint)param_1[0x11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) ;) (if_statement "if (0x3f < uVar5) {\n    return 0x10;\n  }" if (parenthesized_expression "(0x3f < uVar5)" ( (binary_expression "0x3f < uVar5" number_literal < identifier) )) (compound_statement "{\n    return 0x10;\n  }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "uVar1 = uVar5 + 1;" (assignment_expression "uVar1 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (ulong)uVar1;" (assignment_expression "uVar3 = (ulong)uVar1" identifier = (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = (ulong)(uVar5 * 8) + *param_1;" (assignment_expression "uVar6 = (ulong)(uVar5 * 8) + *param_1" identifier = (binary_expression "(ulong)(uVar5 * 8) + *param_1" (call_expression "(ulong)(uVar5 * 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 * 8)" ( (binary_expression "uVar5 * 8" identifier * number_literal) ))) + (pointer_expression "*param_1" * identifier))) ;) (expression_statement "*param_1 = uVar6;" (assignment_expression "*param_1 = uVar6" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x11) = uVar1;" (assignment_expression "*(uint *)(param_1 + 0x11) = uVar1" (pointer_expression "*(uint *)(param_1 + 0x11)" * (cast_expression "(uint *)(param_1 + 0x11)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11)" ( (binary_expression "param_1 + 0x11" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)uVar5 + 0x48)" ( (binary_expression "(long)param_1 + (ulong)uVar5 + 0x48" (binary_expression "(long)param_1 + (ulong)uVar5" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) = number_literal) ;) (if_statement "if (uVar1 < 0x21) goto LAB_00156a56;" if (parenthesized_expression "(uVar1 < 0x21)" ( (binary_expression "uVar1 < 0x21" identifier < number_literal) )) (goto_statement "goto LAB_00156a56;" goto statement_identifier ;)) (if_statement "if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }" if (parenthesized_expression "(uVar1 != 0x40)" ( (binary_expression "uVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }" { (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = uVar3 + 1;" (assignment_expression "lVar4 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = ~uVar1 & 7;" (assignment_expression "uVar5 = ~uVar1 & 7" identifier = (binary_expression "~uVar1 & 7" (unary_expression "~uVar1" ~ identifier) & number_literal)) ;) (if_statement "if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }" if (parenthesized_expression "((uint)lVar4 < 0x40)" ( (binary_expression "(uint)lVar4 < 0x40" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }" { (if_statement "if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }" { (if_statement "if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }" if (parenthesized_expression "(uVar5 != 1)" ( (binary_expression "uVar5 != 1" identifier != number_literal) )) (compound_statement "{\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }" { (if_statement "if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }" if (parenthesized_expression "(uVar5 != 2)" ( (binary_expression "uVar5 != 2" identifier != number_literal) )) (compound_statement "{\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }" { (if_statement "if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }" if (parenthesized_expression "(uVar5 != 3)" ( (binary_expression "uVar5 != 3" identifier != number_literal) )) (compound_statement "{\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }" { (if_statement "if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }" if (parenthesized_expression "(uVar5 != 4)" ( (binary_expression "uVar5 != 4" identifier != number_literal) )) (compound_statement "{\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }" { (if_statement "if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }" if (parenthesized_expression "(uVar5 != 5)" ( (binary_expression "uVar5 != 5" identifier != number_literal) )) (compound_statement "{\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }" { (if_statement "if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }" if (parenthesized_expression "(uVar5 != 6)" ( (binary_expression "uVar5 != 6" identifier != number_literal) )) (compound_statement "{\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }" { (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x49)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x49)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x49)" ( (binary_expression "(long)param_1 + uVar3 + 0x49" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = uVar3 + 2;" (assignment_expression "lVar4 = uVar3 + 2" identifier = (binary_expression "uVar3 + 2" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) (if_statement "if (0x3f < (uint)lVar4) goto LAB_00156a3c;" if (parenthesized_expression "(0x3f < (uint)lVar4)" ( (binary_expression "0x3f < (uint)lVar4" number_literal < (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (goto_statement "goto LAB_00156a3c;" goto statement_identifier ;)) })) (do_statement "do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);" do (compound_statement "{\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      }" { (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x49)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x49)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x49)" ( (binary_expression "(long)param_1 + lVar4 + 0x49" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4a)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4a)" ( (binary_expression "(long)param_1 + lVar4 + 0x4a" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4b)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4b)" ( (binary_expression "(long)param_1 + lVar4 + 0x4b" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4c)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4c)" ( (binary_expression "(long)param_1 + lVar4 + 0x4c" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4d)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4d)" ( (binary_expression "(long)param_1 + lVar4 + 0x4d" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4e)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4e)" ( (binary_expression "(long)param_1 + lVar4 + 0x4e" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4f)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4f)" ( (binary_expression "(long)param_1 + lVar4 + 0x4f" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 8;" (assignment_expression "lVar4 = lVar4 + 8" identifier = (binary_expression "lVar4 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint)lVar4 < 0x40)" ( (binary_expression "(uint)lVar4 < 0x40" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) ;) })) (labeled_statement "LAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x11) = 0x40;" (assignment_expression "*(undefined4 *)(param_1 + 0x11) = 0x40" (pointer_expression "*(undefined4 *)(param_1 + 0x11)" * (cast_expression "(undefined4 *)(param_1 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11)" ( (binary_expression "param_1 + 0x11" identifier + number_literal) )))) = number_literal) ;)) })) (expression_statement "FUN_001561c0(param_1,param_1 + 9);" (call_expression "FUN_001561c0(param_1,param_1 + 9)" identifier (argument_list "(param_1,param_1 + 9)" ( identifier , (binary_expression "param_1 + 9" identifier + number_literal) ))) ;) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00156a56:\n  uVar5 = (uint)uVar3;" statement_identifier : (expression_statement "uVar5 = (uint)uVar3;" (assignment_expression "uVar5 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "uVar1 = -uVar5 & 7;" (assignment_expression "uVar1 = -uVar5 & 7" identifier = (binary_expression "-uVar5 & 7" (unary_expression "-uVar5" - identifier) & number_literal)) ;) (if_statement "if (uVar1 == 0) goto LAB_00156ad0;" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00156ad0;" goto statement_identifier ;)) (if_statement "if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }" if (parenthesized_expression "(uVar1 != 1)" ( (binary_expression "uVar1 != 1" identifier != number_literal) )) (compound_statement "{\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }" { (if_statement "if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }" if (parenthesized_expression "(uVar1 != 2)" ( (binary_expression "uVar1 != 2" identifier != number_literal) )) (compound_statement "{\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }" { (if_statement "if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }" if (parenthesized_expression "(uVar1 != 3)" ( (binary_expression "uVar1 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }" { (if_statement "if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }" if (parenthesized_expression "(uVar1 != 4)" ( (binary_expression "uVar1 != 4" identifier != number_literal) )) (compound_statement "{\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }" { (if_statement "if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }" if (parenthesized_expression "(uVar1 != 5)" ( (binary_expression "uVar1 != 5" identifier != number_literal) )) (compound_statement "{\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }" { (if_statement "if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }" if (parenthesized_expression "(uVar1 != 6)" ( (binary_expression "uVar1 != 6" identifier != number_literal) )) (compound_statement "{\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }" { (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)uVar5 + 0x48)" ( (binary_expression "(long)param_1 + (ulong)uVar5 + 0x48" (binary_expression "(long)param_1 + (ulong)uVar5" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (while_statement "while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }" while (parenthesized_expression "(uVar3 = (ulong)uVar5, uVar5 != 0x38)" ( (comma_expression "uVar3 = (ulong)uVar5, uVar5 != 0x38" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (binary_expression "uVar5 != 0x38" identifier != number_literal)) )) (compound_statement "{\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }" { (labeled_statement "LAB_00156ad0:\n    iVar2 = (int)uVar3;" statement_identifier : (expression_statement "iVar2 = (int)uVar3;" (assignment_expression "iVar2 = (int)uVar3" identifier = (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 1) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 1)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 2) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 2)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 2)" ( (binary_expression "iVar2 + 2" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 3) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 3)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 3)" ( (binary_expression "iVar2 + 3" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 4) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 4)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 5) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 5)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 5)" ( (binary_expression "iVar2 + 5" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 6) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 6)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 6)" ( (binary_expression "iVar2 + 6" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 7) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 7)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 7)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 7)" ( (binary_expression "iVar2 + 7" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = iVar2 + 8;" (assignment_expression "uVar5 = iVar2 + 8" identifier = (binary_expression "iVar2 + 8" identifier + number_literal)) ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x11) = 0x38;" (assignment_expression "*(undefined4 *)(param_1 + 0x11) = 0x38" (pointer_expression "*(undefined4 *)(param_1 + 0x11)" * (cast_expression "(undefined4 *)(param_1 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11)" ( (binary_expression "param_1 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "FUN_001561c0(param_1,param_1 + 9);" (call_expression "FUN_001561c0(param_1,param_1 + 9)" identifier (argument_list "(param_1,param_1 + 9)" ( identifier , (binary_expression "param_1 + 9" identifier + number_literal) ))) ;) (expression_statement "uVar6 = param_1[1];" (assignment_expression "uVar6 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[2];" (assignment_expression "uVar6 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[3];" (assignment_expression "uVar6 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[4];" (assignment_expression "uVar6 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[6];" (assignment_expression "uVar6 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[7];" (assignment_expression "uVar6 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[6]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[8];" (assignment_expression "uVar6 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[7]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int whirlpool_done(hash_state *md,uchar *out)\n\n{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (md == (hash_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (md->whirlpool).curlen;\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + (long)md->data;\n  (md->chc).length = uVar6;\n  (md->whirlpool).curlen = uVar1;\n  md->dummy[(ulong)uVar5 + 0x48] = -0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    md->dummy[uVar3 + 0x48] = '\0';\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    (md->whirlpool).curlen = 0x40;\n  }\n  whirlpool_compress(md,(md->chc).state + 0x40);\n  uVar6 = (md->chc).length;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      md->dummy[uVar3 + 0x48] = '\0';\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    md->dummy[uVar3 + 0x48] = '\0';\n  }\n  md->dummy[(ulong)uVar5 + 0x48] = '\0';\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    md->dummy[uVar3 + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 1) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 2) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 3) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 4) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 5) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 6) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 7) + 0x48] = '\0';\n    uVar5 = iVar2 + 8;\n  }\n  (md->whirlpool).curlen = 0x38;\n  (md->sha3).s[0xf] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  whirlpool_compress(md,(md->chc).state + 0x40);\n  uVar6 = (md->whirlpool).state[0];\n  *(ulong *)out =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[1];\n  *(ulong *)(out + 8) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[2];\n  *(ulong *)(out + 0x10) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[3];\n  *(ulong *)(out + 0x18) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[4];\n  *(ulong *)(out + 0x20) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[5];\n  *(ulong *)(out + 0x28) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[6];\n  *(ulong *)(out + 0x30) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[7];\n  *(ulong *)(out + 0x38) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}\n\n" (function_definition "int whirlpool_done(hash_state *md,uchar *out)\n\n{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (md == (hash_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (md->whirlpool).curlen;\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + (long)md->data;\n  (md->chc).length = uVar6;\n  (md->whirlpool).curlen = uVar1;\n  md->dummy[(ulong)uVar5 + 0x48] = -0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    md->dummy[uVar3 + 0x48] = '\0';\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    (md->whirlpool).curlen = 0x40;\n  }\n  whirlpool_compress(md,(md->chc).state + 0x40);\n  uVar6 = (md->chc).length;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      md->dummy[uVar3 + 0x48] = '\0';\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    md->dummy[uVar3 + 0x48] = '\0';\n  }\n  md->dummy[(ulong)uVar5 + 0x48] = '\0';\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    md->dummy[uVar3 + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 1) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 2) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 3) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 4) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 5) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 6) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 7) + 0x48] = '\0';\n    uVar5 = iVar2 + 8;\n  }\n  (md->whirlpool).curlen = 0x38;\n  (md->sha3).s[0xf] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  whirlpool_compress(md,(md->chc).state + 0x40);\n  uVar6 = (md->whirlpool).state[0];\n  *(ulong *)out =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[1];\n  *(ulong *)(out + 8) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[2];\n  *(ulong *)(out + 0x10) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[3];\n  *(ulong *)(out + 0x18) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[4];\n  *(ulong *)(out + 0x20) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[5];\n  *(ulong *)(out + 0x28) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[6];\n  *(ulong *)(out + 0x30) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[7];\n  *(ulong *)(out + 0x38) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}" primitive_type (function_declarator "whirlpool_done(hash_state *md,uchar *out)" identifier (parameter_list "(hash_state *md,uchar *out)" ( (parameter_declaration "hash_state *md" type_identifier (pointer_declarator "*md" * identifier)) , (parameter_declaration "uchar *out" type_identifier (pointer_declarator "*out" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (md == (hash_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (md->whirlpool).curlen;\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + (long)md->data;\n  (md->chc).length = uVar6;\n  (md->whirlpool).curlen = uVar1;\n  md->dummy[(ulong)uVar5 + 0x48] = -0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    md->dummy[uVar3 + 0x48] = '\0';\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    (md->whirlpool).curlen = 0x40;\n  }\n  whirlpool_compress(md,(md->chc).state + 0x40);\n  uVar6 = (md->chc).length;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      md->dummy[uVar3 + 0x48] = '\0';\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    md->dummy[uVar3 + 0x48] = '\0';\n  }\n  md->dummy[(ulong)uVar5 + 0x48] = '\0';\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    md->dummy[uVar3 + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 1) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 2) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 3) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 4) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 5) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 6) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 7) + 0x48] = '\0';\n    uVar5 = iVar2 + 8;\n  }\n  (md->whirlpool).curlen = 0x38;\n  (md->sha3).s[0xf] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  whirlpool_compress(md,(md->chc).state + 0x40);\n  uVar6 = (md->whirlpool).state[0];\n  *(ulong *)out =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[1];\n  *(ulong *)(out + 8) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[2];\n  *(ulong *)(out + 0x10) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[3];\n  *(ulong *)(out + 0x18) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[4];\n  *(ulong *)(out + 0x20) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[5];\n  *(ulong *)(out + 0x28) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[6];\n  *(ulong *)(out + 0x30) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = (md->whirlpool).state[7];\n  *(ulong *)(out + 0x38) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (if_statement "if (md == (hash_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }" if (parenthesized_expression "(md == (hash_state *)0x0)" ( (binary_expression "md == (hash_state *)0x0" identifier == (cast_expression "(hash_state *)0x0" ( (type_descriptor "hash_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }" { comment (expression_statement "crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);" (call_expression "crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99)" identifier (argument_list "("md != NULL","src/hashes/whirl/whirl.c",0x99)" ( (string_literal ""md != NULL"" " string_content ") , (string_literal ""src/hashes/whirl/whirl.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }" if (parenthesized_expression "(out == (uchar *)0x0)" ( (binary_expression "out == (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("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }" { comment (expression_statement "crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);" (call_expression "crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a)" identifier (argument_list "("out != NULL","src/hashes/whirl/whirl.c",0x9a)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/hashes/whirl/whirl.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar5 = (md->whirlpool).curlen;" (assignment_expression "uVar5 = (md->whirlpool).curlen" identifier = (field_expression "(md->whirlpool).curlen" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (0x3f < uVar5) {\n    return 0x10;\n  }" if (parenthesized_expression "(0x3f < uVar5)" ( (binary_expression "0x3f < uVar5" number_literal < identifier) )) (compound_statement "{\n    return 0x10;\n  }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "uVar1 = uVar5 + 1;" (assignment_expression "uVar1 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (ulong)uVar1;" (assignment_expression "uVar3 = (ulong)uVar1" identifier = (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = (ulong)(uVar5 * 8) + (long)md->data;" (assignment_expression "uVar6 = (ulong)(uVar5 * 8) + (long)md->data" identifier = (binary_expression "(ulong)(uVar5 * 8) + (long)md->data" (call_expression "(ulong)(uVar5 * 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 * 8)" ( (binary_expression "uVar5 * 8" identifier * number_literal) ))) + (cast_expression "(long)md->data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "md->data" identifier -> field_identifier)))) ;) (expression_statement "(md->chc).length = uVar6;" (assignment_expression "(md->chc).length = uVar6" (field_expression "(md->chc).length" (parenthesized_expression "(md->chc)" ( (field_expression "md->chc" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(md->whirlpool).curlen = uVar1;" (assignment_expression "(md->whirlpool).curlen = uVar1" (field_expression "(md->whirlpool).curlen" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "md->dummy[(ulong)uVar5 + 0x48] = -0x80;" (assignment_expression "md->dummy[(ulong)uVar5 + 0x48] = -0x80" (subscript_expression "md->dummy[(ulong)uVar5 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)uVar5 + 0x48" (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) + number_literal) ]) = number_literal) ;) (if_statement "if (uVar1 < 0x21) goto LAB_00156a56;" if (parenthesized_expression "(uVar1 < 0x21)" ( (binary_expression "uVar1 < 0x21" identifier < number_literal) )) (goto_statement "goto LAB_00156a56;" goto statement_identifier ;)) (if_statement "if (uVar1 != 0x40) {\n    md->dummy[uVar3 + 0x48] = '\0';\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    (md->whirlpool).curlen = 0x40;\n  }" if (parenthesized_expression "(uVar1 != 0x40)" ( (binary_expression "uVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n    md->dummy[uVar3 + 0x48] = '\0';\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    (md->whirlpool).curlen = 0x40;\n  }" { (expression_statement "md->dummy[uVar3 + 0x48] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x48] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = uVar3 + 1;" (assignment_expression "lVar4 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = ~uVar1 & 7;" (assignment_expression "uVar5 = ~uVar1 & 7" identifier = (binary_expression "~uVar1 & 7" (unary_expression "~uVar1" ~ identifier) & number_literal)) ;) (if_statement "if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }" if (parenthesized_expression "((uint)lVar4 < 0x40)" ( (binary_expression "(uint)lVar4 < 0x40" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }" { (if_statement "if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }\n        md->dummy[lVar4 + 0x48] = '\0';\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }" { (if_statement "if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }" if (parenthesized_expression "(uVar5 != 1)" ( (binary_expression "uVar5 != 1" identifier != number_literal) )) (compound_statement "{\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }\n          md->dummy[lVar4 + 0x48] = '\0';\n          lVar4 = lVar4 + 1;\n        }" { (if_statement "if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }" if (parenthesized_expression "(uVar5 != 2)" ( (binary_expression "uVar5 != 2" identifier != number_literal) )) (compound_statement "{\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }\n            md->dummy[lVar4 + 0x48] = '\0';\n            lVar4 = lVar4 + 1;\n          }" { (if_statement "if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }" if (parenthesized_expression "(uVar5 != 3)" ( (binary_expression "uVar5 != 3" identifier != number_literal) )) (compound_statement "{\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }\n              md->dummy[lVar4 + 0x48] = '\0';\n              lVar4 = lVar4 + 1;\n            }" { (if_statement "if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }" if (parenthesized_expression "(uVar5 != 4)" ( (binary_expression "uVar5 != 4" identifier != number_literal) )) (compound_statement "{\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }\n                md->dummy[lVar4 + 0x48] = '\0';\n                lVar4 = lVar4 + 1;\n              }" { (if_statement "if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }" if (parenthesized_expression "(uVar5 != 5)" ( (binary_expression "uVar5 != 5" identifier != number_literal) )) (compound_statement "{\n                  if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }\n                  md->dummy[lVar4 + 0x48] = '\0';\n                  lVar4 = lVar4 + 1;\n                }" { (if_statement "if (uVar5 != 6) {\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }" if (parenthesized_expression "(uVar5 != 6)" ( (binary_expression "uVar5 != 6" identifier != number_literal) )) (compound_statement "{\n                    md->dummy[uVar3 + 0x49] = '\0';\n                    lVar4 = uVar3 + 2;\n                  }" { (expression_statement "md->dummy[uVar3 + 0x49] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x49] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x49]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x49" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = uVar3 + 2;" (assignment_expression "lVar4 = uVar3 + 2" identifier = (binary_expression "uVar3 + 2" identifier + number_literal)) ;) })) (expression_statement "md->dummy[lVar4 + 0x48] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x48] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "md->dummy[lVar4 + 0x48] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x48] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "md->dummy[lVar4 + 0x48] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x48] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "md->dummy[lVar4 + 0x48] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x48] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "md->dummy[lVar4 + 0x48] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x48] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "md->dummy[lVar4 + 0x48] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x48] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) (if_statement "if (0x3f < (uint)lVar4) goto LAB_00156a3c;" if (parenthesized_expression "(0x3f < (uint)lVar4)" ( (binary_expression "0x3f < (uint)lVar4" number_literal < (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (goto_statement "goto LAB_00156a3c;" goto statement_identifier ;)) })) (do_statement "do {\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);" do (compound_statement "{\n        md->dummy[lVar4 + 0x48] = '\0';\n        md->dummy[lVar4 + 0x49] = '\0';\n        md->dummy[lVar4 + 0x4a] = '\0';\n        md->dummy[lVar4 + 0x4b] = '\0';\n        md->dummy[lVar4 + 0x4c] = '\0';\n        md->dummy[lVar4 + 0x4d] = '\0';\n        md->dummy[lVar4 + 0x4e] = '\0';\n        md->dummy[lVar4 + 0x4f] = '\0';\n        lVar4 = lVar4 + 8;\n      }" { (expression_statement "md->dummy[lVar4 + 0x48] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x48] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[lVar4 + 0x49] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x49] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x49]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x49" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[lVar4 + 0x4a] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x4a] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x4a]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x4a" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[lVar4 + 0x4b] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x4b] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x4b]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x4b" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[lVar4 + 0x4c] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x4c] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x4c]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x4c" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[lVar4 + 0x4d] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x4d] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x4d]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x4d" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[lVar4 + 0x4e] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x4e] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x4e]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x4e" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[lVar4 + 0x4f] = '\0';" (assignment_expression "md->dummy[lVar4 + 0x4f] = '\0'" (subscript_expression "md->dummy[lVar4 + 0x4f]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "lVar4 + 0x4f" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar4 = lVar4 + 8;" (assignment_expression "lVar4 = lVar4 + 8" identifier = (binary_expression "lVar4 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint)lVar4 < 0x40)" ( (binary_expression "(uint)lVar4 < 0x40" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) ;) })) (labeled_statement "LAB_00156a3c:\n    (md->whirlpool).curlen = 0x40;" statement_identifier : (expression_statement "(md->whirlpool).curlen = 0x40;" (assignment_expression "(md->whirlpool).curlen = 0x40" (field_expression "(md->whirlpool).curlen" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) })) (expression_statement "whirlpool_compress(md,(md->chc).state + 0x40);" (call_expression "whirlpool_compress(md,(md->chc).state + 0x40)" identifier (argument_list "(md,(md->chc).state + 0x40)" ( identifier , (binary_expression "(md->chc).state + 0x40" (field_expression "(md->chc).state" (parenthesized_expression "(md->chc)" ( (field_expression "md->chc" identifier -> field_identifier) )) . field_identifier) + number_literal) ))) ;) (expression_statement "uVar6 = (md->chc).length;" (assignment_expression "uVar6 = (md->chc).length" identifier = (field_expression "(md->chc).length" (parenthesized_expression "(md->chc)" ( (field_expression "md->chc" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00156a56:\n  uVar5 = (uint)uVar3;" statement_identifier : (expression_statement "uVar5 = (uint)uVar3;" (assignment_expression "uVar5 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "uVar1 = -uVar5 & 7;" (assignment_expression "uVar1 = -uVar5 & 7" identifier = (binary_expression "-uVar5 & 7" (unary_expression "-uVar5" - identifier) & number_literal)) ;) (if_statement "if (uVar1 == 0) goto LAB_00156ad0;" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00156ad0;" goto statement_identifier ;)) (if_statement "if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      md->dummy[uVar3 + 0x48] = '\0';\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    md->dummy[uVar3 + 0x48] = '\0';\n  }" if (parenthesized_expression "(uVar1 != 1)" ( (binary_expression "uVar1 != 1" identifier != number_literal) )) (compound_statement "{\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      md->dummy[uVar3 + 0x48] = '\0';\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    md->dummy[uVar3 + 0x48] = '\0';\n  }" { (if_statement "if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      md->dummy[uVar3 + 0x48] = '\0';\n    }" if (parenthesized_expression "(uVar1 != 2)" ( (binary_expression "uVar1 != 2" identifier != number_literal) )) (compound_statement "{\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      md->dummy[uVar3 + 0x48] = '\0';\n    }" { (if_statement "if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }" if (parenthesized_expression "(uVar1 != 3)" ( (binary_expression "uVar1 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        md->dummy[uVar3 + 0x48] = '\0';\n      }" { (if_statement "if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }" if (parenthesized_expression "(uVar1 != 4)" ( (binary_expression "uVar1 != 4" identifier != number_literal) )) (compound_statement "{\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          md->dummy[uVar3 + 0x48] = '\0';\n        }" { (if_statement "if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }" if (parenthesized_expression "(uVar1 != 5)" ( (binary_expression "uVar1 != 5" identifier != number_literal) )) (compound_statement "{\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            md->dummy[uVar3 + 0x48] = '\0';\n          }" { (if_statement "if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }" if (parenthesized_expression "(uVar1 != 6)" ( (binary_expression "uVar1 != 6" identifier != number_literal) )) (compound_statement "{\n              uVar5 = uVar5 + 1;\n              md->dummy[uVar3 + 0x48] = '\0';\n            }" { (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "md->dummy[uVar3 + 0x48] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x48] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "md->dummy[uVar3 + 0x48] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x48] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "md->dummy[uVar3 + 0x48] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x48] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "md->dummy[uVar3 + 0x48] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x48] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "md->dummy[uVar3 + 0x48] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x48] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "md->dummy[uVar3 + 0x48] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x48] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "md->dummy[(ulong)uVar5 + 0x48] = '\0';" (assignment_expression "md->dummy[(ulong)uVar5 + 0x48] = '\0'" (subscript_expression "md->dummy[(ulong)uVar5 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)uVar5 + 0x48" (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (while_statement "while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    md->dummy[uVar3 + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 1) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 2) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 3) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 4) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 5) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 6) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 7) + 0x48] = '\0';\n    uVar5 = iVar2 + 8;\n  }" while (parenthesized_expression "(uVar3 = (ulong)uVar5, uVar5 != 0x38)" ( (comma_expression "uVar3 = (ulong)uVar5, uVar5 != 0x38" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (binary_expression "uVar5 != 0x38" identifier != number_literal)) )) (compound_statement "{\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    md->dummy[uVar3 + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 1) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 2) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 3) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 4) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 5) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 6) + 0x48] = '\0';\n    md->dummy[(ulong)(iVar2 + 7) + 0x48] = '\0';\n    uVar5 = iVar2 + 8;\n  }" { (labeled_statement "LAB_00156ad0:\n    iVar2 = (int)uVar3;" statement_identifier : (expression_statement "iVar2 = (int)uVar3;" (assignment_expression "iVar2 = (int)uVar3" identifier = (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "md->dummy[uVar3 + 0x48] = '\0';" (assignment_expression "md->dummy[uVar3 + 0x48] = '\0'" (subscript_expression "md->dummy[uVar3 + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "uVar3 + 0x48" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[(ulong)(iVar2 + 1) + 0x48] = '\0';" (assignment_expression "md->dummy[(ulong)(iVar2 + 1) + 0x48] = '\0'" (subscript_expression "md->dummy[(ulong)(iVar2 + 1) + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)(iVar2 + 1) + 0x48" (call_expression "(ulong)(iVar2 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) ))) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[(ulong)(iVar2 + 2) + 0x48] = '\0';" (assignment_expression "md->dummy[(ulong)(iVar2 + 2) + 0x48] = '\0'" (subscript_expression "md->dummy[(ulong)(iVar2 + 2) + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)(iVar2 + 2) + 0x48" (call_expression "(ulong)(iVar2 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 2)" ( (binary_expression "iVar2 + 2" identifier + number_literal) ))) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[(ulong)(iVar2 + 3) + 0x48] = '\0';" (assignment_expression "md->dummy[(ulong)(iVar2 + 3) + 0x48] = '\0'" (subscript_expression "md->dummy[(ulong)(iVar2 + 3) + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)(iVar2 + 3) + 0x48" (call_expression "(ulong)(iVar2 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 3)" ( (binary_expression "iVar2 + 3" identifier + number_literal) ))) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[(ulong)(iVar2 + 4) + 0x48] = '\0';" (assignment_expression "md->dummy[(ulong)(iVar2 + 4) + 0x48] = '\0'" (subscript_expression "md->dummy[(ulong)(iVar2 + 4) + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)(iVar2 + 4) + 0x48" (call_expression "(ulong)(iVar2 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[(ulong)(iVar2 + 5) + 0x48] = '\0';" (assignment_expression "md->dummy[(ulong)(iVar2 + 5) + 0x48] = '\0'" (subscript_expression "md->dummy[(ulong)(iVar2 + 5) + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)(iVar2 + 5) + 0x48" (call_expression "(ulong)(iVar2 + 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 5)" ( (binary_expression "iVar2 + 5" identifier + number_literal) ))) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[(ulong)(iVar2 + 6) + 0x48] = '\0';" (assignment_expression "md->dummy[(ulong)(iVar2 + 6) + 0x48] = '\0'" (subscript_expression "md->dummy[(ulong)(iVar2 + 6) + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)(iVar2 + 6) + 0x48" (call_expression "(ulong)(iVar2 + 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 6)" ( (binary_expression "iVar2 + 6" identifier + number_literal) ))) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "md->dummy[(ulong)(iVar2 + 7) + 0x48] = '\0';" (assignment_expression "md->dummy[(ulong)(iVar2 + 7) + 0x48] = '\0'" (subscript_expression "md->dummy[(ulong)(iVar2 + 7) + 0x48]" (field_expression "md->dummy" identifier -> field_identifier) [ (binary_expression "(ulong)(iVar2 + 7) + 0x48" (call_expression "(ulong)(iVar2 + 7)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 7)" ( (binary_expression "iVar2 + 7" identifier + number_literal) ))) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar5 = iVar2 + 8;" (assignment_expression "uVar5 = iVar2 + 8" identifier = (binary_expression "iVar2 + 8" identifier + number_literal)) ;) })) (expression_statement "(md->whirlpool).curlen = 0x38;" (assignment_expression "(md->whirlpool).curlen = 0x38" (field_expression "(md->whirlpool).curlen" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(md->sha3).s[0xf] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "(md->sha3).s[0xf] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "(md->sha3).s[0xf]" (field_expression "(md->sha3).s" (parenthesized_expression "(md->sha3)" ( (field_expression "md->sha3" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "whirlpool_compress(md,(md->chc).state + 0x40);" (call_expression "whirlpool_compress(md,(md->chc).state + 0x40)" identifier (argument_list "(md,(md->chc).state + 0x40)" ( identifier , (binary_expression "(md->chc).state + 0x40" (field_expression "(md->chc).state" (parenthesized_expression "(md->chc)" ( (field_expression "md->chc" identifier -> field_identifier) )) . field_identifier) + number_literal) ))) ;) (expression_statement "uVar6 = (md->whirlpool).state[0];" (assignment_expression "uVar6 = (md->whirlpool).state[0]" identifier = (subscript_expression "(md->whirlpool).state[0]" (field_expression "(md->whirlpool).state" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(ulong *)out =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(ulong *)out =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(ulong *)out" * (cast_expression "(ulong *)out" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = (md->whirlpool).state[1];" (assignment_expression "uVar6 = (md->whirlpool).state[1]" identifier = (subscript_expression "(md->whirlpool).state[1]" (field_expression "(md->whirlpool).state" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(ulong *)(out + 8) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(ulong *)(out + 8) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(ulong *)(out + 8)" * (cast_expression "(ulong *)(out + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(out + 8)" ( (binary_expression "out + 8" identifier + number_literal) )))) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = (md->whirlpool).state[2];" (assignment_expression "uVar6 = (md->whirlpool).state[2]" identifier = (subscript_expression "(md->whirlpool).state[2]" (field_expression "(md->whirlpool).state" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(ulong *)(out + 0x10) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(ulong *)(out + 0x10) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(ulong *)(out + 0x10)" * (cast_expression "(ulong *)(out + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(out + 0x10)" ( (binary_expression "out + 0x10" identifier + number_literal) )))) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = (md->whirlpool).state[3];" (assignment_expression "uVar6 = (md->whirlpool).state[3]" identifier = (subscript_expression "(md->whirlpool).state[3]" (field_expression "(md->whirlpool).state" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(ulong *)(out + 0x18) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(ulong *)(out + 0x18) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(ulong *)(out + 0x18)" * (cast_expression "(ulong *)(out + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(out + 0x18)" ( (binary_expression "out + 0x18" identifier + number_literal) )))) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = (md->whirlpool).state[4];" (assignment_expression "uVar6 = (md->whirlpool).state[4]" identifier = (subscript_expression "(md->whirlpool).state[4]" (field_expression "(md->whirlpool).state" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(ulong *)(out + 0x20) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(ulong *)(out + 0x20) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(ulong *)(out + 0x20)" * (cast_expression "(ulong *)(out + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(out + 0x20)" ( (binary_expression "out + 0x20" identifier + number_literal) )))) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = (md->whirlpool).state[5];" (assignment_expression "uVar6 = (md->whirlpool).state[5]" identifier = (subscript_expression "(md->whirlpool).state[5]" (field_expression "(md->whirlpool).state" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(ulong *)(out + 0x28) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(ulong *)(out + 0x28) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(ulong *)(out + 0x28)" * (cast_expression "(ulong *)(out + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(out + 0x28)" ( (binary_expression "out + 0x28" identifier + number_literal) )))) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = (md->whirlpool).state[6];" (assignment_expression "uVar6 = (md->whirlpool).state[6]" identifier = (subscript_expression "(md->whirlpool).state[6]" (field_expression "(md->whirlpool).state" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(ulong *)(out + 0x30) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(ulong *)(out + 0x30) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(ulong *)(out + 0x30)" * (cast_expression "(ulong *)(out + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(out + 0x30)" ( (binary_expression "out + 0x30" identifier + number_literal) )))) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = (md->whirlpool).state[7];" (assignment_expression "uVar6 = (md->whirlpool).state[7]" identifier = (subscript_expression "(md->whirlpool).state[7]" (field_expression "(md->whirlpool).state" (parenthesized_expression "(md->whirlpool)" ( (field_expression "md->whirlpool" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(ulong *)(out + 0x38) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(ulong *)(out + 0x38) =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(ulong *)(out + 0x38)" * (cast_expression "(ulong *)(out + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(out + 0x38)" ( (binary_expression "out + 0x38" identifier + number_literal) )))) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined8 whirlpool_done(ulong *param_1,ulong *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (param_2 == (ulong *)0x0) {\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (uint)param_1[0x11];\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + *param_1;\n  *param_1 = uVar6;\n  *(uint *)(param_1 + 0x11) = uVar1;\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = *param_1;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }\n  *(undefined4 *)(param_1 + 0x11) = 0x38;\n  param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = param_1[1];\n  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[2];\n  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[3];\n  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[4];\n  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[5];\n  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[6];\n  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[7];\n  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[8];\n  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}\n\n" (function_definition "undefined8 whirlpool_done(ulong *param_1,ulong *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (param_2 == (ulong *)0x0) {\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (uint)param_1[0x11];\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + *param_1;\n  *param_1 = uVar6;\n  *(uint *)(param_1 + 0x11) = uVar1;\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = *param_1;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }\n  *(undefined4 *)(param_1 + 0x11) = 0x38;\n  param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = param_1[1];\n  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[2];\n  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[3];\n  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[4];\n  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[5];\n  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[6];\n  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[7];\n  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[8];\n  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}" type_identifier (function_declarator "whirlpool_done(ulong *param_1,ulong *param_2)" identifier (parameter_list "(ulong *param_1,ulong *param_2)" ( (parameter_declaration "ulong *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (param_2 == (ulong *)0x0) {\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (uint)param_1[0x11];\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + *param_1;\n  *param_1 = uVar6;\n  *(uint *)(param_1 + 0x11) = uVar1;\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = *param_1;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }\n  *(undefined4 *)(param_1 + 0x11) = 0x38;\n  param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = param_1[1];\n  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[2];\n  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[3];\n  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[4];\n  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[5];\n  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[6];\n  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[7];\n  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[8];\n  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (if_statement "if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }" if (parenthesized_expression "(param_1 == (ulong *)0x0)" ( (binary_expression "param_1 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }" { (expression_statement "crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);" (call_expression "crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99)" identifier (argument_list "("md != NULL","src/hashes/whirl/whirl.c",0x99)" ( (string_literal ""md != NULL"" " string_content ") , (string_literal ""src/hashes/whirl/whirl.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == (ulong *)0x0) {\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }" if (parenthesized_expression "(param_2 == (ulong *)0x0)" ( (binary_expression "param_2 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }" { (expression_statement "crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);" (call_expression "crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a)" identifier (argument_list "("out != NULL","src/hashes/whirl/whirl.c",0x9a)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/hashes/whirl/whirl.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar5 = (uint)param_1[0x11];" (assignment_expression "uVar5 = (uint)param_1[0x11]" identifier = (cast_expression "(uint)param_1[0x11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) ;) (if_statement "if (0x3f < uVar5) {\n    return 0x10;\n  }" if (parenthesized_expression "(0x3f < uVar5)" ( (binary_expression "0x3f < uVar5" number_literal < identifier) )) (compound_statement "{\n    return 0x10;\n  }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "uVar1 = uVar5 + 1;" (assignment_expression "uVar1 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (ulong)uVar1;" (assignment_expression "uVar3 = (ulong)uVar1" identifier = (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = (ulong)(uVar5 * 8) + *param_1;" (assignment_expression "uVar6 = (ulong)(uVar5 * 8) + *param_1" identifier = (binary_expression "(ulong)(uVar5 * 8) + *param_1" (call_expression "(ulong)(uVar5 * 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 * 8)" ( (binary_expression "uVar5 * 8" identifier * number_literal) ))) + (pointer_expression "*param_1" * identifier))) ;) (expression_statement "*param_1 = uVar6;" (assignment_expression "*param_1 = uVar6" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x11) = uVar1;" (assignment_expression "*(uint *)(param_1 + 0x11) = uVar1" (pointer_expression "*(uint *)(param_1 + 0x11)" * (cast_expression "(uint *)(param_1 + 0x11)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11)" ( (binary_expression "param_1 + 0x11" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)uVar5 + 0x48)" ( (binary_expression "(long)param_1 + (ulong)uVar5 + 0x48" (binary_expression "(long)param_1 + (ulong)uVar5" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) = number_literal) ;) (if_statement "if (uVar1 < 0x21) goto LAB_00156a56;" if (parenthesized_expression "(uVar1 < 0x21)" ( (binary_expression "uVar1 < 0x21" identifier < number_literal) )) (goto_statement "goto LAB_00156a56;" goto statement_identifier ;)) (if_statement "if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }" if (parenthesized_expression "(uVar1 != 0x40)" ( (binary_expression "uVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }" { (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = uVar3 + 1;" (assignment_expression "lVar4 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = ~uVar1 & 7;" (assignment_expression "uVar5 = ~uVar1 & 7" identifier = (binary_expression "~uVar1 & 7" (unary_expression "~uVar1" ~ identifier) & number_literal)) ;) (if_statement "if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }" if (parenthesized_expression "((uint)lVar4 < 0x40)" ( (binary_expression "(uint)lVar4 < 0x40" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }" { (if_statement "if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }" { (if_statement "if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }" if (parenthesized_expression "(uVar5 != 1)" ( (binary_expression "uVar5 != 1" identifier != number_literal) )) (compound_statement "{\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }" { (if_statement "if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }" if (parenthesized_expression "(uVar5 != 2)" ( (binary_expression "uVar5 != 2" identifier != number_literal) )) (compound_statement "{\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }" { (if_statement "if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }" if (parenthesized_expression "(uVar5 != 3)" ( (binary_expression "uVar5 != 3" identifier != number_literal) )) (compound_statement "{\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }" { (if_statement "if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }" if (parenthesized_expression "(uVar5 != 4)" ( (binary_expression "uVar5 != 4" identifier != number_literal) )) (compound_statement "{\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }" { (if_statement "if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }" if (parenthesized_expression "(uVar5 != 5)" ( (binary_expression "uVar5 != 5" identifier != number_literal) )) (compound_statement "{\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }" { (if_statement "if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }" if (parenthesized_expression "(uVar5 != 6)" ( (binary_expression "uVar5 != 6" identifier != number_literal) )) (compound_statement "{\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }" { (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x49)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x49)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x49)" ( (binary_expression "(long)param_1 + uVar3 + 0x49" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = uVar3 + 2;" (assignment_expression "lVar4 = uVar3 + 2" identifier = (binary_expression "uVar3 + 2" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) (if_statement "if (0x3f < (uint)lVar4) goto LAB_00156a3c;" if (parenthesized_expression "(0x3f < (uint)lVar4)" ( (binary_expression "0x3f < (uint)lVar4" number_literal < (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (goto_statement "goto LAB_00156a3c;" goto statement_identifier ;)) })) (do_statement "do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);" do (compound_statement "{\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      }" { (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" ( (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x49)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x49)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x49)" ( (binary_expression "(long)param_1 + lVar4 + 0x49" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4a)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4a)" ( (binary_expression "(long)param_1 + lVar4 + 0x4a" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4b)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4b)" ( (binary_expression "(long)param_1 + lVar4 + 0x4b" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4c)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4c)" ( (binary_expression "(long)param_1 + lVar4 + 0x4c" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4d)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4d)" ( (binary_expression "(long)param_1 + lVar4 + 0x4d" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4e)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4e)" ( (binary_expression "(long)param_1 + lVar4 + 0x4e" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4f)" * (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + lVar4 + 0x4f)" ( (binary_expression "(long)param_1 + lVar4 + 0x4f" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "lVar4 = lVar4 + 8;" (assignment_expression "lVar4 = lVar4 + 8" identifier = (binary_expression "lVar4 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint)lVar4 < 0x40)" ( (binary_expression "(uint)lVar4 < 0x40" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) ;) })) (labeled_statement "LAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x11) = 0x40;" (assignment_expression "*(undefined4 *)(param_1 + 0x11) = 0x40" (pointer_expression "*(undefined4 *)(param_1 + 0x11)" * (cast_expression "(undefined4 *)(param_1 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11)" ( (binary_expression "param_1 + 0x11" identifier + number_literal) )))) = number_literal) ;)) })) (expression_statement "FUN_001561c0(param_1,param_1 + 9);" (call_expression "FUN_001561c0(param_1,param_1 + 9)" identifier (argument_list "(param_1,param_1 + 9)" ( identifier , (binary_expression "param_1 + 9" identifier + number_literal) ))) ;) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00156a56:\n  uVar5 = (uint)uVar3;" statement_identifier : (expression_statement "uVar5 = (uint)uVar3;" (assignment_expression "uVar5 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "uVar1 = -uVar5 & 7;" (assignment_expression "uVar1 = -uVar5 & 7" identifier = (binary_expression "-uVar5 & 7" (unary_expression "-uVar5" - identifier) & number_literal)) ;) (if_statement "if (uVar1 == 0) goto LAB_00156ad0;" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00156ad0;" goto statement_identifier ;)) (if_statement "if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }" if (parenthesized_expression "(uVar1 != 1)" ( (binary_expression "uVar1 != 1" identifier != number_literal) )) (compound_statement "{\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }" { (if_statement "if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }" if (parenthesized_expression "(uVar1 != 2)" ( (binary_expression "uVar1 != 2" identifier != number_literal) )) (compound_statement "{\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }" { (if_statement "if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }" if (parenthesized_expression "(uVar1 != 3)" ( (binary_expression "uVar1 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }" { (if_statement "if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }" if (parenthesized_expression "(uVar1 != 4)" ( (binary_expression "uVar1 != 4" identifier != number_literal) )) (compound_statement "{\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }" { (if_statement "if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }" if (parenthesized_expression "(uVar1 != 5)" ( (binary_expression "uVar1 != 5" identifier != number_literal) )) (compound_statement "{\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }" { (if_statement "if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }" if (parenthesized_expression "(uVar1 != 6)" ( (binary_expression "uVar1 != 6" identifier != number_literal) )) (compound_statement "{\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }" { (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)uVar5 + 0x48)" ( (binary_expression "(long)param_1 + (ulong)uVar5 + 0x48" (binary_expression "(long)param_1 + (ulong)uVar5" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (while_statement "while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }" while (parenthesized_expression "(uVar3 = (ulong)uVar5, uVar5 != 0x38)" ( (comma_expression "uVar3 = (ulong)uVar5, uVar5 != 0x38" (assignment_expression "uVar3 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (binary_expression "uVar5 != 0x38" identifier != number_literal)) )) (compound_statement "{\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }" { (labeled_statement "LAB_00156ad0:\n    iVar2 = (int)uVar3;" statement_identifier : (expression_statement "iVar2 = (int)uVar3;" (assignment_expression "iVar2 = (int)uVar3" identifier = (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" ( (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 1) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 1)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 2) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 2)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 2)" ( (binary_expression "iVar2 + 2" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 3) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 3)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 3)" ( (binary_expression "iVar2 + 3" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 4) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 4)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 5) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 5)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 5)" ( (binary_expression "iVar2 + 5" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 6) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 6)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 6)" ( (binary_expression "iVar2 + 6" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" * (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" ( (binary_expression "(long)param_1 + (ulong)(iVar2 + 7) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 7)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(iVar2 + 7)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 + 7)" ( (binary_expression "iVar2 + 7" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = iVar2 + 8;" (assignment_expression "uVar5 = iVar2 + 8" identifier = (binary_expression "iVar2 + 8" identifier + number_literal)) ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x11) = 0x38;" (assignment_expression "*(undefined4 *)(param_1 + 0x11) = 0x38" (pointer_expression "*(undefined4 *)(param_1 + 0x11)" * (cast_expression "(undefined4 *)(param_1 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11)" ( (binary_expression "param_1 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "FUN_001561c0(param_1,param_1 + 9);" (call_expression "FUN_001561c0(param_1,param_1 + 9)" identifier (argument_list "(param_1,param_1 + 9)" ( identifier , (binary_expression "param_1 + 9" identifier + number_literal) ))) ;) (expression_statement "uVar6 = param_1[1];" (assignment_expression "uVar6 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[2];" (assignment_expression "uVar6 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[3];" (assignment_expression "uVar6 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[4];" (assignment_expression "uVar6 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[6];" (assignment_expression "uVar6 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[7];" (assignment_expression "uVar6 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[6]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar6 = param_1[8];" (assignment_expression "uVar6 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[7]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (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) ) IDENT)) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) })) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (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) ) IDENT)) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression IDENT != LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 whirlpool_done(ulong *param_1,ulong *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (param_2 == (ulong *)0x0) {\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (uint)param_1[0x11];\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + *param_1;\n  *param_1 = uVar6;\n  *(uint *)(param_1 + 0x11) = uVar1;\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = *param_1;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }\n  *(undefined4 *)(param_1 + 0x11) = 0x38;\n  param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = param_1[1];\n  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[2];\n  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[3];\n  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[4];\n  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[5];\n  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[6];\n  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[7];\n  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[8];\n  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "whirlpool_done(ulong *param_1,ulong *param_2)" (identifier "whirlpool_done") (parameter_list "(ulong *param_1,ulong *param_2)" (( "(") (parameter_declaration "ulong *param_1" (type_identifier "ulong") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong *param_2" (type_identifier "ulong") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  long lVar4;\n  uint uVar5;\n  ulong uVar6;\n  ulong uVar3;\n  \n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }\n  if (param_2 == (ulong *)0x0) {\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }\n  uVar5 = (uint)param_1[0x11];\n  if (0x3f < uVar5) {\n    return 0x10;\n  }\n  uVar1 = uVar5 + 1;\n  uVar3 = (ulong)uVar1;\n  uVar6 = (ulong)(uVar5 * 8) + *param_1;\n  *param_1 = uVar6;\n  *(uint *)(param_1 + 0x11) = uVar1;\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;\n  if (uVar1 < 0x21) goto LAB_00156a56;\n  if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = *param_1;\n  uVar3 = 0;\nLAB_00156a56:\n  uVar5 = (uint)uVar3;\n  uVar1 = -uVar5 & 7;\n  if (uVar1 == 0) goto LAB_00156ad0;\n  if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }\n  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;\n  uVar5 = uVar5 + 1;\n  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }\n  *(undefined4 *)(param_1 + 0x11) = 0x38;\n  param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  FUN_001561c0(param_1,param_1 + 9);\n  uVar6 = param_1[1];\n  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[2];\n  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[3];\n  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[4];\n  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[5];\n  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[6];\n  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[7];\n  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  uVar6 = param_1[8];\n  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n  return 0;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (if_statement "if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }" (if "if") (parenthesized_expression "(param_1 == (ulong *)0x0)" (( "(") (binary_expression "param_1 == (ulong *)0x0" (identifier "param_1") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);\n  }" ({ "{") (expression_statement "crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);" (call_expression "crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99)" (identifier "crypt_argchk") (argument_list "("md != NULL","src/hashes/whirl/whirl.c",0x99)" (( "(") (string_literal ""md != NULL"" (" """) (string_content "md != NULL") (" """)) (, ",") (string_literal ""src/hashes/whirl/whirl.c"" (" """) (string_content "src/hashes/whirl/whirl.c") (" """)) (, ",") (number_literal "0x99") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == (ulong *)0x0) {\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }" (if "if") (parenthesized_expression "(param_2 == (ulong *)0x0)" (( "(") (binary_expression "param_2 == (ulong *)0x0" (identifier "param_2") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);\n  }" ({ "{") (expression_statement "crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);" (call_expression "crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a)" (identifier "crypt_argchk") (argument_list "("out != NULL","src/hashes/whirl/whirl.c",0x9a)" (( "(") (string_literal ""out != NULL"" (" """) (string_content "out != NULL") (" """)) (, ",") (string_literal ""src/hashes/whirl/whirl.c"" (" """) (string_content "src/hashes/whirl/whirl.c") (" """)) (, ",") (number_literal "0x9a") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = (uint)param_1[0x11];" (assignment_expression "uVar5 = (uint)param_1[0x11]" (identifier "uVar5") (= "=") (cast_expression "(uint)param_1[0x11]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")))) (; ";")) (if_statement "if (0x3f < uVar5) {\n    return 0x10;\n  }" (if "if") (parenthesized_expression "(0x3f < uVar5)" (( "(") (binary_expression "0x3f < uVar5" (number_literal "0x3f") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n    return 0x10;\n  }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "uVar1 = uVar5 + 1;" (assignment_expression "uVar1 = uVar5 + 1" (identifier "uVar1") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = (ulong)uVar1;" (assignment_expression "uVar3 = (ulong)uVar1" (identifier "uVar3") (= "=") (cast_expression "(ulong)uVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar1"))) (; ";")) (expression_statement "uVar6 = (ulong)(uVar5 * 8) + *param_1;" (assignment_expression "uVar6 = (ulong)(uVar5 * 8) + *param_1" (identifier "uVar6") (= "=") (binary_expression "(ulong)(uVar5 * 8) + *param_1" (call_expression "(ulong)(uVar5 * 8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 * 8)" (( "(") (binary_expression "uVar5 * 8" (identifier "uVar5") (* "*") (number_literal "8")) () ")"))) (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "*param_1 = uVar6;" (assignment_expression "*param_1 = uVar6" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x11) = uVar1;" (assignment_expression "*(uint *)(param_1 + 0x11) = uVar1" (pointer_expression "*(uint *)(param_1 + 0x11)" (* "*") (cast_expression "(uint *)(param_1 + 0x11)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11)" (( "(") (binary_expression "param_1 + 0x11" (identifier "param_1") (+ "+") (number_literal "0x11")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)uVar5 + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)uVar5 + 0x48" (binary_expression "(long)param_1 + (ulong)uVar5" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0x80")) (; ";")) (if_statement "if (uVar1 < 0x21) goto LAB_00156a56;" (if "if") (parenthesized_expression "(uVar1 < 0x21)" (( "(") (binary_expression "uVar1 < 0x21" (identifier "uVar1") (< "<") (number_literal "0x21")) () ")")) (goto_statement "goto LAB_00156a56;" (goto "goto") (statement_identifier "LAB_00156a56") (; ";"))) (if_statement "if (uVar1 != 0x40) {\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }" (if "if") (parenthesized_expression "(uVar1 != 0x40)" (( "(") (binary_expression "uVar1 != 0x40" (identifier "uVar1") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    lVar4 = uVar3 + 1;\n    uVar5 = ~uVar1 & 7;\n    if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }\nLAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;\n  }" ({ "{") (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = uVar3 + 1;" (assignment_expression "lVar4 = uVar3 + 1" (identifier "lVar4") (= "=") (binary_expression "uVar3 + 1" (identifier "uVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = ~uVar1 & 7;" (assignment_expression "uVar5 = ~uVar1 & 7" (identifier "uVar5") (= "=") (binary_expression "~uVar1 & 7" (unary_expression "~uVar1" (~ "~") (identifier "uVar1")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((uint)lVar4 < 0x40) {\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }" (if "if") (parenthesized_expression "((uint)lVar4 < 0x40)" (( "(") (binary_expression "(uint)lVar4 < 0x40" (cast_expression "(uint)lVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar4")) (< "<") (number_literal "0x40")) () ")")) (compound_statement "{\n      if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }\n      do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);\n    }" ({ "{") (if_statement "if (uVar5 != 0) {\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        lVar4 = lVar4 + 1;\n        if (0x3f < (uint)lVar4) goto LAB_00156a3c;\n      }" ({ "{") (if_statement "if (uVar5 != 1) {\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }" (if "if") (parenthesized_expression "(uVar5 != 1)" (( "(") (binary_expression "uVar5 != 1" (identifier "uVar5") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }\n          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n          lVar4 = lVar4 + 1;\n        }" ({ "{") (if_statement "if (uVar5 != 2) {\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }" (if "if") (parenthesized_expression "(uVar5 != 2)" (( "(") (binary_expression "uVar5 != 2" (identifier "uVar5") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n            if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }\n            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n            lVar4 = lVar4 + 1;\n          }" ({ "{") (if_statement "if (uVar5 != 3) {\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }" (if "if") (parenthesized_expression "(uVar5 != 3)" (( "(") (binary_expression "uVar5 != 3" (identifier "uVar5") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n              if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }\n              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n              lVar4 = lVar4 + 1;\n            }" ({ "{") (if_statement "if (uVar5 != 4) {\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }" (if "if") (parenthesized_expression "(uVar5 != 4)" (( "(") (binary_expression "uVar5 != 4" (identifier "uVar5") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n                if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }\n                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                lVar4 = lVar4 + 1;\n              }" ({ "{") (if_statement "if (uVar5 != 5) {\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }" (if "if") (parenthesized_expression "(uVar5 != 5)" (( "(") (binary_expression "uVar5 != 5" (identifier "uVar5") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                  if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }\n                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n                  lVar4 = lVar4 + 1;\n                }" ({ "{") (if_statement "if (uVar5 != 6) {\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }" (if "if") (parenthesized_expression "(uVar5 != 6)" (( "(") (binary_expression "uVar5 != 6" (identifier "uVar5") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;\n                    lVar4 = uVar3 + 2;\n                  }" ({ "{") (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x49)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x49)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x49)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x49" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x49")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = uVar3 + 2;" (assignment_expression "lVar4 = uVar3 + 2" (identifier "lVar4") (= "=") (binary_expression "uVar3 + 2" (identifier "uVar3") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 1" (identifier "lVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 1" (identifier "lVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 1" (identifier "lVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 1" (identifier "lVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 1" (identifier "lVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 1" (identifier "lVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0x3f < (uint)lVar4) goto LAB_00156a3c;" (if "if") (parenthesized_expression "(0x3f < (uint)lVar4)" (( "(") (binary_expression "0x3f < (uint)lVar4" (number_literal "0x3f") (< "<") (cast_expression "(uint)lVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar4"))) () ")")) (goto_statement "goto LAB_00156a3c;" (goto "goto") (statement_identifier "LAB_00156a3c") (; ";"))) (} "}"))) (do_statement "do {\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      } while ((uint)lVar4 < 0x40);" (do "do") (compound_statement "{\n        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;\n        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;\n        lVar4 = lVar4 + 8;\n      }" ({ "{") (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x48)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x48" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x49)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x49)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x49)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x49" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x49")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4a)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4a)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x4a)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x4a" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x4a")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4b)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x4b)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x4b" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x4b")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4c)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x4c)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x4c" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4d)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x4d)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x4d" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x4d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4e)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x4e)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x4e" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x4e")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + lVar4 + 0x4f)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + lVar4 + 0x4f)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + lVar4 + 0x4f)" (( "(") (binary_expression "(long)param_1 + lVar4 + 0x4f" (binary_expression "(long)param_1 + lVar4" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "lVar4")) (+ "+") (number_literal "0x4f")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar4 = lVar4 + 8;" (assignment_expression "lVar4 = lVar4 + 8" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 8" (identifier "lVar4") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint)lVar4 < 0x40)" (( "(") (binary_expression "(uint)lVar4 < 0x40" (cast_expression "(uint)lVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar4")) (< "<") (number_literal "0x40")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00156a3c:\n    *(undefined4 *)(param_1 + 0x11) = 0x40;" (statement_identifier "LAB_00156a3c") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x11) = 0x40;" (assignment_expression "*(undefined4 *)(param_1 + 0x11) = 0x40" (pointer_expression "*(undefined4 *)(param_1 + 0x11)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x11)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11)" (( "(") (binary_expression "param_1 + 0x11" (identifier "param_1") (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0x40")) (; ";"))) (} "}"))) (expression_statement "FUN_001561c0(param_1,param_1 + 9);" (call_expression "FUN_001561c0(param_1,param_1 + 9)" (identifier "FUN_001561c0") (argument_list "(param_1,param_1 + 9)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_1 + 9" (identifier "param_1") (+ "+") (number_literal "9")) () ")"))) (; ";")) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" (identifier "uVar6") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00156a56:\n  uVar5 = (uint)uVar3;" (statement_identifier "LAB_00156a56") (: ":") (expression_statement "uVar5 = (uint)uVar3;" (assignment_expression "uVar5 = (uint)uVar3" (identifier "uVar5") (= "=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3"))) (; ";"))) (expression_statement "uVar1 = -uVar5 & 7;" (assignment_expression "uVar1 = -uVar5 & 7" (identifier "uVar1") (= "=") (binary_expression "-uVar5 & 7" (unary_expression "-uVar5" (- "-") (identifier "uVar5")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (uVar1 == 0) goto LAB_00156ad0;" (if "if") (parenthesized_expression "(uVar1 == 0)" (( "(") (binary_expression "uVar1 == 0" (identifier "uVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00156ad0;" (goto "goto") (statement_identifier "LAB_00156ad0") (; ";"))) (if_statement "if (uVar1 != 1) {\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }" (if "if") (parenthesized_expression "(uVar1 != 1)" (( "(") (binary_expression "uVar1 != 1" (identifier "uVar1") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }\n    uVar3 = (ulong)uVar5;\n    uVar5 = uVar5 + 1;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n  }" ({ "{") (if_statement "if (uVar1 != 2) {\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }" (if "if") (parenthesized_expression "(uVar1 != 2)" (( "(") (binary_expression "uVar1 != 2" (identifier "uVar1") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }\n      uVar3 = (ulong)uVar5;\n      uVar5 = uVar5 + 1;\n      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    }" ({ "{") (if_statement "if (uVar1 != 3) {\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }" (if "if") (parenthesized_expression "(uVar1 != 3)" (( "(") (binary_expression "uVar1 != 3" (identifier "uVar1") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n        if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }\n        uVar3 = (ulong)uVar5;\n        uVar5 = uVar5 + 1;\n        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n      }" ({ "{") (if_statement "if (uVar1 != 4) {\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }" (if "if") (parenthesized_expression "(uVar1 != 4)" (( "(") (binary_expression "uVar1 != 4" (identifier "uVar1") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n          if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }\n          uVar3 = (ulong)uVar5;\n          uVar5 = uVar5 + 1;\n          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n        }" ({ "{") (if_statement "if (uVar1 != 5) {\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }" (if "if") (parenthesized_expression "(uVar1 != 5)" (( "(") (binary_expression "uVar1 != 5" (identifier "uVar1") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n            if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }\n            uVar3 = (ulong)uVar5;\n            uVar5 = uVar5 + 1;\n            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n          }" ({ "{") (if_statement "if (uVar1 != 6) {\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }" (if "if") (parenthesized_expression "(uVar1 != 6)" (( "(") (binary_expression "uVar1 != 6" (identifier "uVar1") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n              uVar5 = uVar5 + 1;\n              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n            }" ({ "{") (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" (identifier "uVar3") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" (identifier "uVar3") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" (identifier "uVar3") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" (identifier "uVar3") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar3 = (ulong)uVar5;" (assignment_expression "uVar3 = (ulong)uVar5" (identifier "uVar3") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)uVar5 + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)uVar5 + 0x48" (binary_expression "(long)param_1 + (ulong)uVar5" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (while_statement "while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }" (while "while") (parenthesized_expression "(uVar3 = (ulong)uVar5, uVar5 != 0x38)" (( "(") (comma_expression "uVar3 = (ulong)uVar5, uVar5 != 0x38" (assignment_expression "uVar3 = (ulong)uVar5" (identifier "uVar3") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (, ",") (binary_expression "uVar5 != 0x38" (identifier "uVar5") (!= "!=") (number_literal "0x38"))) () ")")) (compound_statement "{\nLAB_00156ad0:\n    iVar2 = (int)uVar3;\n    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;\n    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;\n    uVar5 = iVar2 + 8;\n  }" ({ "{") (labeled_statement "LAB_00156ad0:\n    iVar2 = (int)uVar3;" (statement_identifier "LAB_00156ad0") (: ":") (expression_statement "iVar2 = (int)uVar3;" (assignment_expression "iVar2 = (int)uVar3" (identifier "iVar2") (= "=") (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3"))) (; ";"))) (expression_statement "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + uVar3 + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + uVar3 + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar3 + 0x48)" (( "(") (binary_expression "(long)param_1 + uVar3 + 0x48" (binary_expression "(long)param_1 + uVar3" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 1) + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)(iVar2 + 1) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 1)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (call_expression "(ulong)(iVar2 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar2 + 1)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")")))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 2) + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)(iVar2 + 2) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 2)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (call_expression "(ulong)(iVar2 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar2 + 2)" (( "(") (binary_expression "iVar2 + 2" (identifier "iVar2") (+ "+") (number_literal "2")) () ")")))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 3) + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)(iVar2 + 3) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 3)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (call_expression "(ulong)(iVar2 + 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar2 + 3)" (( "(") (binary_expression "iVar2 + 3" (identifier "iVar2") (+ "+") (number_literal "3")) () ")")))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 4) + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)(iVar2 + 4) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 4)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (call_expression "(ulong)(iVar2 + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 5) + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)(iVar2 + 5) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 5)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (call_expression "(ulong)(iVar2 + 5)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar2 + 5)" (( "(") (binary_expression "iVar2 + 5" (identifier "iVar2") (+ "+") (number_literal "5")) () ")")))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 6) + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)(iVar2 + 6) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 6)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (call_expression "(ulong)(iVar2 + 6)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar2 + 6)" (( "(") (binary_expression "iVar2 + 6" (identifier "iVar2") (+ "+") (number_literal "6")) () ")")))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;" (assignment_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0" (pointer_expression "*(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (ulong)(iVar2 + 7) + 0x48)" (( "(") (binary_expression "(long)param_1 + (ulong)(iVar2 + 7) + 0x48" (binary_expression "(long)param_1 + (ulong)(iVar2 + 7)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (call_expression "(ulong)(iVar2 + 7)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar2 + 7)" (( "(") (binary_expression "iVar2 + 7" (identifier "iVar2") (+ "+") (number_literal "7")) () ")")))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = iVar2 + 8;" (assignment_expression "uVar5 = iVar2 + 8" (identifier "uVar5") (= "=") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x11) = 0x38;" (assignment_expression "*(undefined4 *)(param_1 + 0x11) = 0x38" (pointer_expression "*(undefined4 *)(param_1 + 0x11)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x11)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11)" (( "(") (binary_expression "param_1 + 0x11" (identifier "param_1") (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0x38")) (; ";")) (expression_statement "param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_1[0x10] =\n       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n       (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n       (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "FUN_001561c0(param_1,param_1 + 9);" (call_expression "FUN_001561c0(param_1,param_1 + 9)" (identifier "FUN_001561c0") (argument_list "(param_1,param_1 + 9)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_1 + 9" (identifier "param_1") (+ "+") (number_literal "9")) () ")"))) (; ";")) (expression_statement "uVar6 = param_1[1];" (assignment_expression "uVar6 = param_1[1]" (identifier "uVar6") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar6 = param_1[2];" (assignment_expression "uVar6 = param_1[2]" (identifier "uVar6") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar6 = param_1[3];" (assignment_expression "uVar6 = param_1[3]" (identifier "uVar6") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar6 = param_1[4];" (assignment_expression "uVar6 = param_1[4]" (identifier "uVar6") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" (identifier "uVar6") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar6 = param_1[6];" (assignment_expression "uVar6 = param_1[6]" (identifier "uVar6") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar6 = param_1[7];" (assignment_expression "uVar6 = param_1[7]" (identifier "uVar6") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar6 = param_1[8];" (assignment_expression "uVar6 = param_1[8]" (identifier "uVar6") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |\n               (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18\n               | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

int function_1(type_1 *var_1,type_2 *var_3)

{
  type_3 var_5;
  int var_9;
  long var_7;
  type_3 var_4;
  type_4 var_10;
  type_4 var_6;
  
  if (var_1 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("md != NULL","src/hashes/whirl/whirl.c",0x99);
  }
  if (var_3 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("out != NULL","src/hashes/whirl/whirl.c",0x9a);
  }
  var_4 = (var_1->whirlpool).curlen;
  if (0x3f < var_4) {
    return 0x10;
  }
  var_5 = var_4 + 1;
  var_6 = (type_4)var_5;
  var_10 = (type_4)(var_4 * 8) + (long)var_1->data;
  (var_1->chc).length = var_10;
  (var_1->whirlpool).curlen = var_5;
  var_1->dummy[(type_4)var_4 + 0x48] = -0x80;
  if (var_5 < 0x21) goto LAB_00156a56;
  if (var_5 != 0x40) {
    var_1->dummy[var_6 + 0x48] = '\0';
    var_7 = var_6 + 1;
    var_4 = ~var_5 & 7;
    if ((type_3)var_7 < 0x40) {
      if (var_4 != 0) {
        if (var_4 != 1) {
          if (var_4 != 2) {
            if (var_4 != 3) {
              if (var_4 != 4) {
                if (var_4 != 5) {
                  if (var_4 != 6) {
                    var_1->dummy[var_6 + 0x49] = '\0';
                    var_7 = var_6 + 2;
                  }
                  var_1->dummy[var_7 + 0x48] = '\0';
                  var_7 = var_7 + 1;
                }
                var_1->dummy[var_7 + 0x48] = '\0';
                var_7 = var_7 + 1;
              }
              var_1->dummy[var_7 + 0x48] = '\0';
              var_7 = var_7 + 1;
            }
            var_1->dummy[var_7 + 0x48] = '\0';
            var_7 = var_7 + 1;
          }
          var_1->dummy[var_7 + 0x48] = '\0';
          var_7 = var_7 + 1;
        }
        var_1->dummy[var_7 + 0x48] = '\0';
        var_7 = var_7 + 1;
        if (0x3f < (type_3)var_7) goto LAB_00156a3c;
      }
      do {
        var_1->dummy[var_7 + 0x48] = '\0';
        var_1->dummy[var_7 + 0x49] = '\0';
        var_1->dummy[var_7 + 0x4a] = '\0';
        var_1->dummy[var_7 + 0x4b] = '\0';
        var_1->dummy[var_7 + 0x4c] = '\0';
        var_1->dummy[var_7 + 0x4d] = '\0';
        var_1->dummy[var_7 + 0x4e] = '\0';
        var_1->dummy[var_7 + 0x4f] = '\0';
        var_7 = var_7 + 8;
      } while ((type_3)var_7 < 0x40);
    }
LAB_00156a3c:
    (var_1->whirlpool).curlen = 0x40;
  }
  var_8(var_1,(var_1->chc).state + 0x40);
  var_10 = (var_1->chc).length;
  var_6 = 0;
LAB_00156a56:
  var_4 = (type_3)var_6;
  var_5 = -var_4 & 7;
  if (var_5 == 0) goto LAB_00156ad0;
  if (var_5 != 1) {
    if (var_5 != 2) {
      if (var_5 != 3) {
        if (var_5 != 4) {
          if (var_5 != 5) {
            if (var_5 != 6) {
              var_4 = var_4 + 1;
              var_1->dummy[var_6 + 0x48] = '\0';
            }
            var_6 = (type_4)var_4;
            var_4 = var_4 + 1;
            var_1->dummy[var_6 + 0x48] = '\0';
          }
          var_6 = (type_4)var_4;
          var_4 = var_4 + 1;
          var_1->dummy[var_6 + 0x48] = '\0';
        }
        var_6 = (type_4)var_4;
        var_4 = var_4 + 1;
        var_1->dummy[var_6 + 0x48] = '\0';
      }
      var_6 = (type_4)var_4;
      var_4 = var_4 + 1;
      var_1->dummy[var_6 + 0x48] = '\0';
    }
    var_6 = (type_4)var_4;
    var_4 = var_4 + 1;
    var_1->dummy[var_6 + 0x48] = '\0';
  }
  var_1->dummy[(type_4)var_4 + 0x48] = '\0';
  var_4 = var_4 + 1;
  while (var_6 = (type_4)var_4, var_4 != 0x38) {
LAB_00156ad0:
    var_9 = (int)var_6;
    var_1->dummy[var_6 + 0x48] = '\0';
    var_1->dummy[(type_4)(var_9 + 1) + 0x48] = '\0';
    var_1->dummy[(type_4)(var_9 + 2) + 0x48] = '\0';
    var_1->dummy[(type_4)(var_9 + 3) + 0x48] = '\0';
    var_1->dummy[(type_4)(var_9 + 4) + 0x48] = '\0';
    var_1->dummy[(type_4)(var_9 + 5) + 0x48] = '\0';
    var_1->dummy[(type_4)(var_9 + 6) + 0x48] = '\0';
    var_1->dummy[(type_4)(var_9 + 7) + 0x48] = '\0';
    var_4 = var_9 + 8;
  }
  (var_1->whirlpool).curlen = 0x38;
  (var_1->sha3).s[0xf] =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  var_8(var_1,(var_1->chc).state + 0x40);
  var_10 = (var_1->whirlpool).state[0];
  *(type_4 *)var_3 =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  var_10 = (var_1->whirlpool).state[1];
  *(type_4 *)(var_3 + 8) =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  var_10 = (var_1->whirlpool).state[2];
  *(type_4 *)(var_3 + 0x10) =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  var_10 = (var_1->whirlpool).state[3];
  *(type_4 *)(var_3 + 0x18) =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  var_10 = (var_1->whirlpool).state[4];
  *(type_4 *)(var_3 + 0x20) =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  var_10 = (var_1->whirlpool).state[5];
  *(type_4 *)(var_3 + 0x28) =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  var_10 = (var_1->whirlpool).state[6];
  *(type_4 *)(var_3 + 0x30) =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  var_10 = (var_1->whirlpool).state[7];
  *(type_4 *)(var_3 + 0x38) =
       var_10 >> 0x38 | (var_10 & 0xff000000000000) >> 0x28 | (var_10 & 0xff0000000000) >> 0x18 |
       (var_10 & 0xff00000000) >> 8 | (var_10 & 0xff000000) << 8 | (var_10 & 0xff0000) << 0x18 |
       (var_10 & 0xff00) << 0x28 | var_10 << 0x38;
  return 0;
}


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

undefined8 MASKED(ulong *param_1,ulong *param_2)

{
  uint uVar1;
  int iVar2;
  long lVar4;
  uint uVar5;
  ulong uVar6;
  ulong uVar3;
  
  if (param_1 == (ulong *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("md != NULL","src/hashes/whirl/whirl.c",0x99);
  }
  if (param_2 == (ulong *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("out != NULL","src/hashes/whirl/whirl.c",0x9a);
  }
  uVar5 = (uint)param_1[0x11];
  if (0x3f < uVar5) {
    return 0x10;
  }
  uVar1 = uVar5 + 1;
  uVar3 = (ulong)uVar1;
  uVar6 = (ulong)(uVar5 * 8) + *param_1;
  *param_1 = uVar6;
  *(uint *)(param_1 + 0x11) = uVar1;
  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0x80;
  if (uVar1 < 0x21) goto LAB_00156a56;
  if (uVar1 != 0x40) {
    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
    lVar4 = uVar3 + 1;
    uVar5 = ~uVar1 & 7;
    if ((uint)lVar4 < 0x40) {
      if (uVar5 != 0) {
        if (uVar5 != 1) {
          if (uVar5 != 2) {
            if (uVar5 != 3) {
              if (uVar5 != 4) {
                if (uVar5 != 5) {
                  if (uVar5 != 6) {
                    *(undefined1 *)((long)param_1 + uVar3 + 0x49) = 0;
                    lVar4 = uVar3 + 2;
                  }
                  *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
                  lVar4 = lVar4 + 1;
                }
                *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
                lVar4 = lVar4 + 1;
              }
              *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
              lVar4 = lVar4 + 1;
            }
            *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
            lVar4 = lVar4 + 1;
          }
          *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
          lVar4 = lVar4 + 1;
        }
        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
        lVar4 = lVar4 + 1;
        if (0x3f < (uint)lVar4) goto LAB_00156a3c;
      }
      do {
        *(undefined1 *)((long)param_1 + lVar4 + 0x48) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x49) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4a) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4b) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4c) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4d) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4e) = 0;
        *(undefined1 *)((long)param_1 + lVar4 + 0x4f) = 0;
        lVar4 = lVar4 + 8;
      } while ((uint)lVar4 < 0x40);
    }
LAB_00156a3c:
    *(undefined4 *)(param_1 + 0x11) = 0x40;
  }
  FUN_001561c0(param_1,param_1 + 9);
  uVar6 = *param_1;
  uVar3 = 0;
LAB_00156a56:
  uVar5 = (uint)uVar3;
  uVar1 = -uVar5 & 7;
  if (uVar1 == 0) goto LAB_00156ad0;
  if (uVar1 != 1) {
    if (uVar1 != 2) {
      if (uVar1 != 3) {
        if (uVar1 != 4) {
          if (uVar1 != 5) {
            if (uVar1 != 6) {
              uVar5 = uVar5 + 1;
              *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
            }
            uVar3 = (ulong)uVar5;
            uVar5 = uVar5 + 1;
            *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
          }
          uVar3 = (ulong)uVar5;
          uVar5 = uVar5 + 1;
          *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
        }
        uVar3 = (ulong)uVar5;
        uVar5 = uVar5 + 1;
        *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
      }
      uVar3 = (ulong)uVar5;
      uVar5 = uVar5 + 1;
      *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
    }
    uVar3 = (ulong)uVar5;
    uVar5 = uVar5 + 1;
    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
  }
  *(undefined1 *)((long)param_1 + (ulong)uVar5 + 0x48) = 0;
  uVar5 = uVar5 + 1;
  while (uVar3 = (ulong)uVar5, uVar5 != 0x38) {
LAB_00156ad0:
    iVar2 = (int)uVar3;
    *(undefined1 *)((long)param_1 + uVar3 + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 1) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 2) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 3) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 4) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 5) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 6) + 0x48) = 0;
    *(undefined1 *)((long)param_1 + (ulong)(iVar2 + 7) + 0x48) = 0;
    uVar5 = iVar2 + 8;
  }
  *(undefined4 *)(param_1 + 0x11) = 0x38;
  param_1[0x10] =
       uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
       (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
       (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  FUN_001561c0(param_1,param_1 + 9);
  uVar6 = param_1[1];
  *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[2];
  param_2[1] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[3];
  param_2[2] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[4];
  param_2[3] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[5];
  param_2[4] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[6];
  param_2[5] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[7];
  param_2[6] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  uVar6 = param_1[8];
  param_2[7] = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18
               | (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 |
               (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
  return 0;
}

