
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention */

int dsa_decrypt_key(uchar *in,ulong inlen,uchar *out,ulong *outlen,dsa_key *key)

{
  long lVar1;
  int iVar2;
  undefined4 uVar3;
  byte *__ptr;
  byte *__ptr_00;
  long lVar4;
  ulong uVar5;
  dsa_key *unaff_RBP;
  ulong *puVar6;
  uint uVar7;
  ulong unaff_R15;
  long in_FS_OFFSET;
  void *g_pub;
  ulong x;
  ulong y;
  ltc_asn1_list decode [3];
  ulong hashOID [32];
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  puVar6 = hashOID;
  for (lVar4 = 0x20; lVar4 != 0; lVar4 = lVar4 + -1) {
    *puVar6 = 0;
    puVar6 = puVar6 + 1;
  }
  if (in == (uchar *)0x0) {
    crypt_argchk("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26);
LAB_001000ad:
    crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);
LAB_001000c5:
    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);
LAB_001000dd:
    crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);
  }
  else {
    unaff_RBP = key;
    unaff_R15 = inlen;
    if (out == (uchar *)0x0) goto LAB_001000ad;
    if (outlen == (ulong *)0x0) goto LAB_001000c5;
    if (key == (dsa_key *)0x0) goto LAB_001000dd;
    iVar2 = 0xf;
    if (key->type != 1) goto LAB_0010006a;
  }
  decode[0].type = LTC_ASN1_OBJECT_IDENTIFIER;
  decode[0].data = hashOID;
  decode[0].size = 0x20;
  decode[0].used = 0;
  iVar2 = der_decode_sequence_ex(in);
  if ((iVar2 == 0) || (iVar2 == 0x15)) {
    uVar3 = find_hash_oid(hashOID,decode[0].size);
    iVar2 = hash_is_valid(uVar3);
    if (iVar2 == 0) {
      iVar2 = (*_dsa_shared_secret)(&g_pub);
      if (iVar2 == 0) {
        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);
        __ptr = (byte *)malloc(lVar4 + 1);
        __ptr_00 = (byte *)malloc(0x80);
        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {
          if (__ptr != (byte *)0x0) {
            free(__ptr);
          }
          if (__ptr_00 != (byte *)0x0) {
            free(__ptr_00);
          }
          (*_free)(g_pub);
          iVar2 = 0xd;
        }
        else {
          decode[1].type = LTC_ASN1_INTEGER;
          decode[1].data = g_pub;
          decode[1].size = 1;
          decode[1].used = 0;
          decode[2].type = LTC_ASN1_OCTET_STRING;
          decode[2].size = 0x80;
          decode[2].used = 0;
          decode[2].data = __ptr_00;
          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);
          if (iVar2 == 0) {
            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);
            x = lVar4 + 1;
            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);
            if (iVar2 == 0) {
              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);
              y = lVar4 + 1;
              if (0x80 < y) {
                y = 0x80;
              }
              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);
              if (iVar2 == 0) {
                if (y < decode[2].size) {
                  iVar2 = 7;
                }
                else if (*outlen < decode[2].size) {
                  *outlen = decode[2].size;
                  iVar2 = 6;
                }
                else {
                  x = 0;
                  if (decode[2].size != 0) {
                    x = 0;
                    uVar7 = (uint)decode[2].size & 7;
                    if ((decode[2].size & 7) == 0) goto LAB_00100435;
                    if (uVar7 != 1) {
                      if (uVar7 != 2) {
                        if (uVar7 != 3) {
                          if (uVar7 != 4) {
                            if (uVar7 != 5) {
                              if (uVar7 != 6) {
                                *out = *__ptr ^ *__ptr_00;
                              }
                              uVar5 = (ulong)(uVar7 != 6);
                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];
                              x = uVar5 + 1;
                            }
                            out[x] = __ptr[x] ^ __ptr_00[x];
                            x = x + 1;
                          }
                          out[x] = __ptr[x] ^ __ptr_00[x];
                          x = x + 1;
                        }
                        out[x] = __ptr[x] ^ __ptr_00[x];
                        x = x + 1;
                      }
                      out[x] = __ptr[x] ^ __ptr_00[x];
                      x = x + 1;
                    }
                    out[x] = __ptr[x] ^ __ptr_00[x];
                    for (x = x + 1; decode[2].size != x; x = x + 8) {
LAB_00100435:
                      out[x] = __ptr[x] ^ __ptr_00[x];
                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];
                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];
                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];
                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];
                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];
                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];
                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];
                    }
                  }
                  *outlen = x;
                }
              }
            }
          }
          free(__ptr);
          free(__ptr_00);
          (*_free)(g_pub);
        }
      }
    }
    else {
      iVar2 = 7;
    }
  }
LAB_0010006a:
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x00100587) overlaps instruction at (ram,0x00100586)
    */
/* WARNING: Removing unreachable block (ram,0x00100139) */
/* WARNING: Removing unreachable block (ram,0x00100515) */
/* WARNING: Removing unreachable block (ram,0x00100519) */
/* WARNING: Removing unreachable block (ram,0x00100504) */

void FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  ulong uVar4;
  long lVar5;
  ulong uVar6;
  byte *pbVar7;
  byte *extraout_RDX;
  byte *extraout_RDX_00;
  ulong *puVar8;
  byte *extraout_RDX_01;
  char *pcVar9;
  ulong *puVar10;
  undefined8 *puVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  ulong *puVar14;
  ulong *puVar15;
  undefined8 *puVar16;
  ulong *puVar17;
  ulong *unaff_RBP;
  undefined8 *puVar18;
  byte bVar19;
  ulong unaff_R15;
  long in_FS_OFFSET;
  ulong auStack_2c0 [12];
  undefined4 auStack_25c [3];
  undefined8 local_250;
  undefined1 local_248 [32];
  undefined4 auStack_228 [2];
  ulong auStack_220 [2];
  undefined4 auStack_210 [2];
  ulong local_208 [2];
  undefined4 local_1f8 [8];
  ulong local_1d8;
  undefined4 auStack_1d0 [2];
  ulong auStack_1c8 [2];
  undefined4 local_1b8 [28];
  undefined8 local_148 [33];
  undefined8 local_40;
  ulong *puVar20;
  
  puVar11 = (undefined8 *)local_248;
  puVar12 = local_248;
  puVar13 = local_248;
  puVar10 = (ulong *)local_248;
  puVar14 = (ulong *)local_248;
  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);
  puVar18 = local_148;
  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {
    *puVar18 = 0;
    puVar18 = puVar18 + 1;
  }
  if (param_1 == 0) {
    puVar11 = &local_250;
    local_250 = 0x1000ad;
LAB_001000ad:
    puVar12 = (undefined1 *)((long)puVar11 + -8);
    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;
LAB_001000c5:
    puVar13 = puVar12 + -8;
    *(undefined8 *)(puVar12 + -8) = 0x1000dd;
LAB_001000dd:
    puVar14 = (ulong *)(puVar13 + -8);
    *(undefined8 *)(puVar13 + -8) = 0x1000f5;
  }
  else {
    unaff_RBP = param_5;
    unaff_R15 = param_2;
    if (param_3 == (byte *)0x0) goto LAB_001000ad;
    if (param_4 == (long *)0x0) goto LAB_001000c5;
    if (param_5 == (ulong *)0x0) goto LAB_001000dd;
    pcVar9 = (char *)0xf;
    pbVar7 = param_3;
    if ((int)*param_5 != 1) goto LAB_0010006a;
  }
  *(undefined4 *)(puVar14 + 8) = 7;
  puVar14[9] = (ulong)(puVar14 + 0x20);
  puVar14[10] = 0x20;
  *(undefined4 *)(puVar14 + 0xb) = 0;
  puVar14[-1] = 0x100133;
  puVar14[-2] = 0x100154;
  *(undefined4 *)((long)puVar14 + 0xc) = 0;
  puVar10 = puVar14 + -3;
  puVar14[-3] = 0x10015f;
  puVar14[-4] = 0x100172;
  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);
  pcVar9 = (char *)(ulong)uVar2;
  pbVar7 = extraout_RDX;
  if (uVar2 == 0) {
    uVar4 = unaff_RBP[3];
    puVar14[-4] = 0x100186;
    uVar4 = (*pcRam0000000000100186)(uVar4);
    puVar14[-4] = 0x10018f;
    puVar14[-2] = uVar4;
    puVar10 = puVar14 + -5;
    puVar14[-5] = 0x1001a1;
    puVar14[-4] = uVar4;
    if ((uVar4 == 0) || (uVar4 == 0)) {
      if (puVar14[-3] != 0) {
        puVar10 = puVar14 + -6;
        puVar14[-6] = 0x1002f3;
      }
      if (*(long *)((long)puVar10 + 8) != 0) {
        puVar16 = (undefined8 *)((long)puVar10 + -8);
        puVar10 = (ulong *)((long)puVar10 + -8);
        *puVar16 = 0x100305;
      }
      *(undefined8 *)((long)puVar10 + -8) = 0x100310;
      (*pcRam0000000000100310)();
      pcVar9 = (char *)0xd;
      pbVar7 = extraout_RDX_00;
    }
    else {
      *(undefined4 *)(puVar14 + 0xb) = 2;
      puVar14[0xc] = *puVar14;
      puVar14[0xd] = 1;
      *(undefined4 *)(puVar14 + 0xe) = 0;
      *(undefined4 *)(puVar14 + 0x13) = 5;
      puVar14[0x14] = puVar14[-4];
      puVar14[0x15] = 0x80;
      *(undefined4 *)(puVar14 + 0x16) = 0;
      uVar6 = 3;
      puVar14[-6] = 0x100231;
      pcVar9 = (char *)(uVar4 & 0xffffffff);
      puVar8 = puVar14 + 3;
      puVar17 = puVar14 + -6;
      puVar20 = (ulong *)(undefined1 *)0x1;
      if ((int)uVar4 == 0) {
        uVar4 = unaff_RBP[3];
        puVar14[-7] = 0x100245;
        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);
        uVar4 = lVar5 + 1;
        *puVar14 = uVar4;
        uVar6 = puVar14[-4];
        puVar14[-7] = 0x10026c;
        pcVar9 = (char *)(uVar4 & 0xffffffff);
        puVar8 = unaff_RBP;
        puVar17 = puVar14 + -7;
        unaff_R15 = puVar14[-1];
        puVar20 = puVar14;
        if ((int)uVar4 == 0) {
          uVar4 = unaff_RBP[3];
          puVar14[-8] = 0x100280;
          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);
          uVar4 = lVar5 + 1;
          if (0x80 < uVar4) {
            uVar4 = 0x80;
          }
          *puVar14 = uVar4;
          puVar8 = (ulong *)puVar14[-1];
          puVar15 = puVar14 + -8;
          puVar14[-8] = 0x1002b2;
          pcVar9 = (char *)(uVar4 & 0xffffffff);
          puVar17 = puVar14 + -8;
          unaff_R15 = uVar6;
          if ((int)uVar4 == 0) {
            puVar17 = (ulong *)puVar14[0x12];
            if ((ulong *)puVar14[-1] < puVar17) {
              pcVar9 = (char *)0x7;
              puVar17 = puVar14 + -8;
            }
            else if ((ulong *)*param_4 < puVar17) {
              *param_4 = (long)puVar17;
              pcVar9 = (char *)0x6;
              puVar17 = puVar14 + -8;
            }
            else {
              puVar14[-2] = 0;
              if (puVar17 == (ulong *)0x0) {
                puVar8 = (ulong *)0x0;
              }
              else {
                puVar8 = (ulong *)0x0;
                uVar2 = (uint)puVar17 & 7;
                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;
                if (uVar2 != 1) {
                  if (uVar2 != 2) {
                    if (uVar2 != 3) {
                      if (uVar2 != 4) {
                        if (uVar2 != 5) {
                          if (uVar2 != 6) {
                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];
                          }
                          uVar4 = (ulong)(uVar2 != 6);
                          param_3[uVar4] =
                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);
                          puVar8 = (ulong *)(uVar4 + 1);
                        }
                        param_3[(long)puVar8] =
                             *(byte *)(puVar14[-6] + (long)puVar8) ^
                             *(byte *)(puVar14[-7] + (long)puVar8);
                        puVar8 = (ulong *)((long)puVar8 + 1);
                      }
                      uVar6 = puVar14[-7];
                      param_3[(long)puVar8] =
                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);
                      puVar8 = (ulong *)((long)puVar8 + 1);
                    }
                    param_3[(long)puVar8] =
                         *(byte *)(puVar14[-6] + (long)puVar8) ^
                         *(byte *)(puVar14[-7] + (long)puVar8);
                    puVar8 = (ulong *)((long)puVar8 + 1);
                  }
                  unaff_R15 = puVar14[-6];
                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^
                           *(byte *)(puVar14[-7] + (long)puVar8);
                  puVar20 = (ulong *)(ulong)bVar19;
                  param_3[(long)puVar8] = bVar19;
                  puVar8 = (ulong *)((long)puVar8 + 1);
                }
                param_3[(long)puVar8] =
                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);
                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {
LAB_00100435:
                  uVar4 = puVar14[-6];
                  lVar5 = puVar14[-7];
                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);
                  uVar6 = (ulong)bVar19;
                  param_3[(long)puVar8] = bVar19;
                  puVar20 = (ulong *)((long)puVar8 + 1);
                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)
                  ;
                  unaff_R15 = (ulong)bVar19;
                  (param_3 + 1)[(long)puVar8] = bVar19;
                  (param_3 + 1)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);
                  (param_3 + 2)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);
                  (param_3 + 3)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);
                  (param_3 + 4)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);
                  (param_3 + 5)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);
                  (param_3 + 6)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);
                }
                puVar14[-2] = (ulong)puVar8;
                puVar14 = puVar20;
              }
              *param_4 = (long)puVar8;
              puVar17 = puVar15;
              puVar20 = puVar14;
            }
          }
        }
      }
      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;
      puVar10 = (ulong *)((long)puVar17 + -0x10);
      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;
      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;
      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)
      ;
      pbVar7 = extraout_RDX_01;
    }
  }
LAB_0010006a:
  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
  *(undefined8 *)((long)puVar10 + -8) = 0x100513;
  *pcVar9 = *pcVar9 + (char)pcVar9;
  *pcVar9 = *pcVar9 + (char)pcVar9;
  *pcVar9 = *pcVar9 + (char)pbVar7;
  iVar3 = (uint)pcVar9 + 0x42000000;
  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);
  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);
  *pcVar9 = *pcVar9 + cVar1;
  *pcVar9 = *pcVar9 + cVar1;
  *pcVar9 = *pcVar9 + cVar1;
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x218
MOV R12,RDI
MOV R13,RDX
MOV R14,RCX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x208],RAX
XOR EAX,EAX
LEA RDI,[RSP + 0x100]
MOV ECX,0x20
STOSQ.REP RDI
TEST R12,R12
JZ 0x00100095
MOV R15,RSI
MOV RBP,R8
TEST RDX,RDX
JZ 0x001000ad
TEST R14,R14
JZ 0x001000c5
TEST R8,R8
JZ 0x001000dd
MOV EBX,0xf
CMP dword ptr [R8],0x1
JZ 0x001000f5
MOV EAX,EBX
MOV RSI,qword ptr [RSP + 0x208]
XOR RSI,qword ptr FS:[0x28]
JNZ 0x0010050e
ADD RSP,0x218
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EDX,0x26
LEA RSI,[0x1000a1]
LEA RDI,[0x1000a8]
CALL 0x001000ad
MOV EDX,0x27
LEA RSI,[0x1000b9]
LEA RDI,[0x1000c0]
CALL 0x001000c5
MOV EDX,0x28
LEA RSI,[0x1000d1]
LEA RDI,[0x1000d8]
CALL 0x001000dd
MOV EDX,0x29
LEA RSI,[0x1000e9]
LEA RDI,[0x1000f0]
CALL 0x001000f5
MOV dword ptr [RSP + 0x40],0x7
LEA RDX,[RSP + 0x100]
MOV qword ptr [RSP + 0x48],RDX
MOV qword ptr [RSP + 0x50],0x20
MOV dword ptr [RSP + 0x58],0x0
LEA RDX,[RSP + 0x40]
MOV R8D,0x1
MOV ECX,0x1
MOV RDI,R12
CALL 0x00100133
MOV EBX,EAX
TEST EAX,EAX
JZ 0x00100142
CMP EAX,0x15
JNZ 0x0010006a
LEA RDI,[RSP + 0x100]
MOV RSI,qword ptr [RSP + 0x50]
CALL 0x00100154
MOV dword ptr [RSP + 0x1c],EAX
MOV EDI,EAX
CALL 0x0010015f
TEST EAX,EAX
JNZ 0x00100504
LEA RDI,[RSP + 0x28]
CALL qword ptr [0x00100172]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x0010006a
MOV RDI,qword ptr [RBP + 0x18]
CALL qword ptr [0x00100186]
LEA RDI,[RAX + 0x1]
CALL 0x0010018f
MOV RBX,RAX
MOV qword ptr [RSP + 0x10],RAX
MOV EDI,0x80
CALL 0x001001a1
MOV qword ptr [RSP + 0x8],RAX
TEST RBX,RBX
JZ 0x001002e1
TEST RAX,RAX
JZ 0x001002e1
MOV dword ptr [RSP + 0x80],0x2
MOV RSI,qword ptr [RSP + 0x28]
MOV qword ptr [RSP + 0x88],RSI
MOV qword ptr [RSP + 0x90],0x1
MOV dword ptr [RSP + 0x98],0x0
MOV dword ptr [RSP + 0xc0],0x5
MOV R8,qword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0xc8],R8
MOV qword ptr [RSP + 0xd0],0x80
MOV dword ptr [RSP + 0xd8],0x0
LEA RDX,[RSP + 0x40]
MOV R8D,0x1
MOV ECX,0x3
MOV RSI,R15
MOV RDI,R12
CALL 0x00100231
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001004e0
MOV RDI,qword ptr [RBP + 0x18]
CALL qword ptr [0x00100245]
ADD RAX,0x1
MOV qword ptr [RSP + 0x30],RAX
MOV RDI,qword ptr [RBP + 0x20]
LEA R8,[RSP + 0x30]
MOV R12,qword ptr [RSP + 0x10]
MOV RCX,R12
MOV RDX,RBP
MOV RSI,qword ptr [RSP + 0x28]
CALL 0x0010026c
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001004e0
MOV RDI,qword ptr [RBP + 0x18]
CALL qword ptr [0x00100280]
ADD RAX,0x1
CMP RAX,0x80
MOV R9D,0x80
CMOVA RAX,R9
MOV qword ptr [RSP + 0x38],RAX
LEA R8,[RSP + 0x38]
MOV RCX,R12
MOV RDX,qword ptr [RSP + 0x30]
MOV RSI,R12
MOV EDI,dword ptr [RSP + 0x1c]
CALL 0x001002b2
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001004e0
MOV R10,qword ptr [RSP + 0xd0]
CMP R10,qword ptr [RSP + 0x38]
JA 0x001004db
CMP R10,qword ptr [R14]
JBE 0x0010031a
MOV qword ptr [R14],R10
MOV EBX,0x6
JMP 0x001004e0
MOV R13,qword ptr [RSP + 0x10]
TEST R13,R13
JZ 0x001002f3
MOV RDI,R13
CALL 0x001002f3
MOV R14,qword ptr [RSP + 0x8]
TEST R14,R14
JZ 0x00100305
MOV RDI,R14
CALL 0x00100305
MOV RDI,qword ptr [RSP + 0x28]
CALL qword ptr [0x00100310]
MOV EBX,0xd
JMP 0x0010006a
MOV qword ptr [RSP + 0x30],0x0
TEST R10,R10
JZ 0x001004d6
MOV EDX,0x0
MOV R11,R10
AND R11D,0x7
JZ 0x00100435
CMP R11,0x1
JZ 0x00100410
CMP R11,0x2
JZ 0x001003f4
CMP R11,0x3
JZ 0x001003d7
CMP R11,0x4
JZ 0x001003bc
CMP R11,0x5
JZ 0x001003a0
CMP R11,0x6
JZ 0x00100384
MOV RAX,qword ptr [RSP + 0x10]
MOVZX ECX,byte ptr [RAX + RDX*0x1]
MOV RDI,qword ptr [RSP + 0x8]
XOR CL,byte ptr [RDI + RDX*0x1]
MOV byte ptr [R13 + RDX*0x1],CL
ADD RDX,0x1
MOV R15,qword ptr [RSP + 0x10]
MOVZX EBP,byte ptr [R15 + RDX*0x1]
MOV RSI,qword ptr [RSP + 0x8]
XOR BPL,byte ptr [RSI + RDX*0x1]
MOV byte ptr [R13 + RDX*0x1],BPL
ADD RDX,0x1
MOV R8,qword ptr [RSP + 0x10]
MOVZX R12D,byte ptr [R8 + RDX*0x1]
MOV R9,qword ptr [RSP + 0x8]
XOR R12B,byte ptr [R9 + RDX*0x1]
MOV byte ptr [R13 + RDX*0x1],R12B
ADD RDX,0x1
MOV R11,qword ptr [RSP + 0x10]
MOVZX EAX,byte ptr [R11 + RDX*0x1]
MOV RCX,qword ptr [RSP + 0x8]
XOR AL,byte ptr [RCX + RDX*0x1]
MOV byte ptr [R13 + RDX*0x1],AL
ADD RDX,0x1
MOV RDI,qword ptr [RSP + 0x10]
MOVZX R15D,byte ptr [RDI + RDX*0x1]
MOV RBP,qword ptr [RSP + 0x8]
XOR R15B,byte ptr [RBP + RDX*0x1]
MOV byte ptr [R13 + RDX*0x1],R15B
ADD RDX,0x1
MOV RSI,qword ptr [RSP + 0x10]
MOVZX R8D,byte ptr [RSI + RDX*0x1]
MOV R12,qword ptr [RSP + 0x8]
XOR R8B,byte ptr [R12 + RDX*0x1]
MOV byte ptr [R13 + RDX*0x1],R8B
ADD RDX,0x1
MOV R9,qword ptr [RSP + 0x10]
MOVZX R11D,byte ptr [R9 + RDX*0x1]
MOV RAX,qword ptr [RSP + 0x8]
XOR R11B,byte ptr [RAX + RDX*0x1]
MOV byte ptr [R13 + RDX*0x1],R11B
ADD RDX,0x1
CMP R10,RDX
JZ 0x001004cc
MOV RDI,qword ptr [RSP + 0x10]
MOVZX ECX,byte ptr [RDI + RDX*0x1]
MOV RBP,qword ptr [RSP + 0x8]
XOR CL,byte ptr [RBP + RDX*0x1]
MOV byte ptr [R13 + RDX*0x1],CL
LEA R8,[RDX + 0x1]
MOVZX ESI,byte ptr [RDI + RDX*0x1 + 0x1]
XOR SIL,byte ptr [RBP + RDX*0x1 + 0x1]
MOV byte ptr [R13 + RDX*0x1 + 0x1],SIL
MOVZX EDX,byte ptr [RDI + R8*0x1 + 0x1]
XOR DL,byte ptr [RBP + R8*0x1 + 0x1]
MOV byte ptr [R13 + R8*0x1 + 0x1],DL
MOVZX R12D,byte ptr [RDI + R8*0x1 + 0x2]
XOR R12B,byte ptr [RBP + R8*0x1 + 0x2]
MOV byte ptr [R13 + R8*0x1 + 0x2],R12B
MOVZX R9D,byte ptr [RDI + R8*0x1 + 0x3]
XOR R9B,byte ptr [RBP + R8*0x1 + 0x3]
MOV byte ptr [R13 + R8*0x1 + 0x3],R9B
MOVZX R11D,byte ptr [RDI + R8*0x1 + 0x4]
XOR R11B,byte ptr [RBP + R8*0x1 + 0x4]
MOV byte ptr [R13 + R8*0x1 + 0x4],R11B
MOVZX EAX,byte ptr [RDI + R8*0x1 + 0x5]
XOR AL,byte ptr [RBP + R8*0x1 + 0x5]
MOV byte ptr [R13 + R8*0x1 + 0x5],AL
MOVZX R15D,byte ptr [RDI + R8*0x1 + 0x6]
XOR R15B,byte ptr [RBP + R8*0x1 + 0x6]
MOV byte ptr [R13 + R8*0x1 + 0x6],R15B
LEA RDX,[R8 + 0x7]
CMP R10,RDX
JNZ 0x00100435
MOV qword ptr [RSP + 0x30],RDX
MOV qword ptr [R14],RDX
JMP 0x001004e0
MOV RDX,R10
JMP 0x001004d1
MOV EBX,0x7
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x001004ea
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x001004f4
MOV RDI,qword ptr [RSP + 0x28]
CALL qword ptr [0x001004ff]
JMP 0x0010006a
MOV EBX,0x7
JMP 0x0010006a
CALL 0x00100513
JNC 0x00100587
MOVSXD EBP,dword ptr [RDI]
JO 0x00100584
(translation_unit "/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Instruction at (ram,0x00100587) overlaps instruction at (ram,0x00100586)\n    */\n/* WARNING: Removing unreachable block (ram,0x00100139) */\n/* WARNING: Removing unreachable block (ram,0x00100515) */\n/* WARNING: Removing unreachable block (ram,0x00100519) */\n/* WARNING: Removing unreachable block (ram,0x00100504) */\n\nvoid FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *extraout_RDX;\n  byte *extraout_RDX_00;\n  ulong *puVar8;\n  byte *extraout_RDX_01;\n  char *pcVar9;\n  ulong *puVar10;\n  undefined8 *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  ulong *puVar14;\n  ulong *puVar15;\n  undefined8 *puVar16;\n  ulong *puVar17;\n  ulong *unaff_RBP;\n  undefined8 *puVar18;\n  byte bVar19;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  ulong auStack_2c0 [12];\n  undefined4 auStack_25c [3];\n  undefined8 local_250;\n  undefined1 local_248 [32];\n  undefined4 auStack_228 [2];\n  ulong auStack_220 [2];\n  undefined4 auStack_210 [2];\n  ulong local_208 [2];\n  undefined4 local_1f8 [8];\n  ulong local_1d8;\n  undefined4 auStack_1d0 [2];\n  ulong auStack_1c8 [2];\n  undefined4 local_1b8 [28];\n  undefined8 local_148 [33];\n  undefined8 local_40;\n  ulong *puVar20;\n  \n  puVar11 = (undefined8 *)local_248;\n  puVar12 = local_248;\n  puVar13 = local_248;\n  puVar10 = (ulong *)local_248;\n  puVar14 = (ulong *)local_248;\n  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);\n  puVar18 = local_148;\n  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }\n  if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }\n  *(undefined4 *)(puVar14 + 8) = 7;\n  puVar14[9] = (ulong)(puVar14 + 0x20);\n  puVar14[10] = 0x20;\n  *(undefined4 *)(puVar14 + 0xb) = 0;\n  puVar14[-1] = 0x100133;\n  puVar14[-2] = 0x100154;\n  *(undefined4 *)((long)puVar14 + 0xc) = 0;\n  puVar10 = puVar14 + -3;\n  puVar14[-3] = 0x10015f;\n  puVar14[-4] = 0x100172;\n  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);\n  pcVar9 = (char *)(ulong)uVar2;\n  pbVar7 = extraout_RDX;\n  if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }\nLAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n  *(undefined8 *)((long)puVar10 + -8) = 0x100513;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pbVar7;\n  iVar3 = (uint)pcVar9 + 0x42000000;\n  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);\n  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  halt_baddata();\n}\n\n" comment comment comment comment comment comment (function_definition "void FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *extraout_RDX;\n  byte *extraout_RDX_00;\n  ulong *puVar8;\n  byte *extraout_RDX_01;\n  char *pcVar9;\n  ulong *puVar10;\n  undefined8 *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  ulong *puVar14;\n  ulong *puVar15;\n  undefined8 *puVar16;\n  ulong *puVar17;\n  ulong *unaff_RBP;\n  undefined8 *puVar18;\n  byte bVar19;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  ulong auStack_2c0 [12];\n  undefined4 auStack_25c [3];\n  undefined8 local_250;\n  undefined1 local_248 [32];\n  undefined4 auStack_228 [2];\n  ulong auStack_220 [2];\n  undefined4 auStack_210 [2];\n  ulong local_208 [2];\n  undefined4 local_1f8 [8];\n  ulong local_1d8;\n  undefined4 auStack_1d0 [2];\n  ulong auStack_1c8 [2];\n  undefined4 local_1b8 [28];\n  undefined8 local_148 [33];\n  undefined8 local_40;\n  ulong *puVar20;\n  \n  puVar11 = (undefined8 *)local_248;\n  puVar12 = local_248;\n  puVar13 = local_248;\n  puVar10 = (ulong *)local_248;\n  puVar14 = (ulong *)local_248;\n  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);\n  puVar18 = local_148;\n  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }\n  if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }\n  *(undefined4 *)(puVar14 + 8) = 7;\n  puVar14[9] = (ulong)(puVar14 + 0x20);\n  puVar14[10] = 0x20;\n  *(undefined4 *)(puVar14 + 0xb) = 0;\n  puVar14[-1] = 0x100133;\n  puVar14[-2] = 0x100154;\n  *(undefined4 *)((long)puVar14 + 0xc) = 0;\n  puVar10 = puVar14 + -3;\n  puVar14[-3] = 0x10015f;\n  puVar14[-4] = 0x100172;\n  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);\n  pcVar9 = (char *)(ulong)uVar2;\n  pbVar7 = extraout_RDX;\n  if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }\nLAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n  *(undefined8 *)((long)puVar10 + -8) = 0x100513;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pbVar7;\n  iVar3 = (uint)pcVar9 + 0x42000000;\n  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);\n  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  halt_baddata();\n}" primitive_type (function_declarator "FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)" identifier (parameter_list "(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "ulong *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *extraout_RDX;\n  byte *extraout_RDX_00;\n  ulong *puVar8;\n  byte *extraout_RDX_01;\n  char *pcVar9;\n  ulong *puVar10;\n  undefined8 *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  ulong *puVar14;\n  ulong *puVar15;\n  undefined8 *puVar16;\n  ulong *puVar17;\n  ulong *unaff_RBP;\n  undefined8 *puVar18;\n  byte bVar19;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  ulong auStack_2c0 [12];\n  undefined4 auStack_25c [3];\n  undefined8 local_250;\n  undefined1 local_248 [32];\n  undefined4 auStack_228 [2];\n  ulong auStack_220 [2];\n  undefined4 auStack_210 [2];\n  ulong local_208 [2];\n  undefined4 local_1f8 [8];\n  ulong local_1d8;\n  undefined4 auStack_1d0 [2];\n  ulong auStack_1c8 [2];\n  undefined4 local_1b8 [28];\n  undefined8 local_148 [33];\n  undefined8 local_40;\n  ulong *puVar20;\n  \n  puVar11 = (undefined8 *)local_248;\n  puVar12 = local_248;\n  puVar13 = local_248;\n  puVar10 = (ulong *)local_248;\n  puVar14 = (ulong *)local_248;\n  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);\n  puVar18 = local_148;\n  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }\n  if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }\n  *(undefined4 *)(puVar14 + 8) = 7;\n  puVar14[9] = (ulong)(puVar14 + 0x20);\n  puVar14[10] = 0x20;\n  *(undefined4 *)(puVar14 + 0xb) = 0;\n  puVar14[-1] = 0x100133;\n  puVar14[-2] = 0x100154;\n  *(undefined4 *)((long)puVar14 + 0xc) = 0;\n  puVar10 = puVar14 + -3;\n  puVar14[-3] = 0x10015f;\n  puVar14[-4] = 0x100172;\n  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);\n  pcVar9 = (char *)(ulong)uVar2;\n  pbVar7 = extraout_RDX;\n  if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }\nLAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n  *(undefined8 *)((long)puVar10 + -8) = 0x100513;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pbVar7;\n  iVar3 = (uint)pcVar9 + 0x42000000;\n  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);\n  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n                    /* WARNING: Bad instruction - Truncating control flow here */\n  halt_baddata();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *extraout_RDX;" type_identifier (pointer_declarator "*extraout_RDX" * identifier) ;) (declaration "byte *extraout_RDX_00;" type_identifier (pointer_declarator "*extraout_RDX_00" * identifier) ;) (declaration "ulong *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "byte *extraout_RDX_01;" type_identifier (pointer_declarator "*extraout_RDX_01" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "ulong *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "ulong *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "ulong *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined8 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "ulong *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "ulong *unaff_RBP;" type_identifier (pointer_declarator "*unaff_RBP" * identifier) ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "ulong unaff_R15;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong auStack_2c0 [12];" type_identifier (array_declarator "auStack_2c0 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_25c [3];" type_identifier (array_declarator "auStack_25c [3]" identifier [ number_literal ]) ;) (declaration "undefined8 local_250;" type_identifier identifier ;) (declaration "undefined1 local_248 [32];" type_identifier (array_declarator "local_248 [32]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_228 [2];" type_identifier (array_declarator "auStack_228 [2]" identifier [ number_literal ]) ;) (declaration "ulong auStack_220 [2];" type_identifier (array_declarator "auStack_220 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_210 [2];" type_identifier (array_declarator "auStack_210 [2]" identifier [ number_literal ]) ;) (declaration "ulong local_208 [2];" type_identifier (array_declarator "local_208 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_1f8 [8];" type_identifier (array_declarator "local_1f8 [8]" identifier [ number_literal ]) ;) (declaration "ulong local_1d8;" type_identifier identifier ;) (declaration "undefined4 auStack_1d0 [2];" type_identifier (array_declarator "auStack_1d0 [2]" identifier [ number_literal ]) ;) (declaration "ulong auStack_1c8 [2];" type_identifier (array_declarator "auStack_1c8 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_1b8 [28];" type_identifier (array_declarator "local_1b8 [28]" identifier [ number_literal ]) ;) (declaration "undefined8 local_148 [33];" type_identifier (array_declarator "local_148 [33]" identifier [ number_literal ]) ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (declaration "ulong *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (expression_statement "puVar11 = (undefined8 *)local_248;" (assignment_expression "puVar11 = (undefined8 *)local_248" identifier = (cast_expression "(undefined8 *)local_248" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar12 = local_248;" (assignment_expression "puVar12 = local_248" identifier = identifier) ;) (expression_statement "puVar13 = local_248;" (assignment_expression "puVar13 = local_248" identifier = identifier) ;) (expression_statement "puVar10 = (ulong *)local_248;" (assignment_expression "puVar10 = (ulong *)local_248" identifier = (cast_expression "(ulong *)local_248" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar14 = (ulong *)local_248;" (assignment_expression "puVar14 = (ulong *)local_248" identifier = (cast_expression "(ulong *)local_248" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(undefined8 *)(in_FS_OFFSET + 0x28)" * (cast_expression "(undefined8 *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar18 = local_148;" (assignment_expression "puVar18 = local_148" identifier = identifier) ;) (for_statement "for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }" for ( (assignment_expression "lVar5 = 0x20" identifier = number_literal) ; (binary_expression "lVar5 != 0" identifier != number_literal) ; (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }" { (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) })) (if_statement "if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }" { (expression_statement "puVar11 = &local_250;" (assignment_expression "puVar11 = &local_250" identifier = (pointer_expression "&local_250" & identifier)) ;) (expression_statement "local_250 = 0x1000ad;" (assignment_expression "local_250 = 0x1000ad" identifier = number_literal) ;) (labeled_statement "LAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);" statement_identifier : (expression_statement "puVar12 = (undefined1 *)((long)puVar11 + -8);" (assignment_expression "puVar12 = (undefined1 *)((long)puVar11 + -8)" identifier = (cast_expression "(undefined1 *)((long)puVar11 + -8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar11 + -8)" ( (binary_expression "(long)puVar11 + -8" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;)) (expression_statement "*(undefined8 *)((long)puVar11 + -8) = 0x1000c5;" (assignment_expression "*(undefined8 *)((long)puVar11 + -8) = 0x1000c5" (pointer_expression "*(undefined8 *)((long)puVar11 + -8)" * (cast_expression "(undefined8 *)((long)puVar11 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar11 + -8)" ( (binary_expression "(long)puVar11 + -8" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_001000c5:\n    puVar13 = puVar12 + -8;" statement_identifier : (expression_statement "puVar13 = puVar12 + -8;" (assignment_expression "puVar13 = puVar12 + -8" identifier = (binary_expression "puVar12 + -8" identifier + number_literal)) ;)) (expression_statement "*(undefined8 *)(puVar12 + -8) = 0x1000dd;" (assignment_expression "*(undefined8 *)(puVar12 + -8) = 0x1000dd" (pointer_expression "*(undefined8 *)(puVar12 + -8)" * (cast_expression "(undefined8 *)(puVar12 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);" statement_identifier : (expression_statement "puVar14 = (ulong *)(puVar13 + -8);" (assignment_expression "puVar14 = (ulong *)(puVar13 + -8)" identifier = (cast_expression "(ulong *)(puVar13 + -8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) ;)) (expression_statement "*(undefined8 *)(puVar13 + -8) = 0x1000f5;" (assignment_expression "*(undefined8 *)(puVar13 + -8) = 0x1000f5" (pointer_expression "*(undefined8 *)(puVar13 + -8)" * (cast_expression "(undefined8 *)(puVar13 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" else (compound_statement "{\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" { (expression_statement "unaff_RBP = param_5;" (assignment_expression "unaff_RBP = param_5" identifier = identifier) ;) (expression_statement "unaff_R15 = param_2;" (assignment_expression "unaff_R15 = param_2" identifier = identifier) ;) (if_statement "if (param_3 == (byte *)0x0) goto LAB_001000ad;" if (parenthesized_expression "(param_3 == (byte *)0x0)" ( (binary_expression "param_3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001000ad;" goto statement_identifier ;)) (if_statement "if (param_4 == (long *)0x0) goto LAB_001000c5;" if (parenthesized_expression "(param_4 == (long *)0x0)" ( (binary_expression "param_4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001000c5;" goto statement_identifier ;)) (if_statement "if (param_5 == (ulong *)0x0) goto LAB_001000dd;" if (parenthesized_expression "(param_5 == (ulong *)0x0)" ( (binary_expression "param_5 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001000dd;" goto statement_identifier ;)) (expression_statement "pcVar9 = (char *)0xf;" (assignment_expression "pcVar9 = (char *)0xf" identifier = (cast_expression "(char *)0xf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar7 = param_3;" (assignment_expression "pbVar7 = param_3" identifier = identifier) ;) (if_statement "if ((int)*param_5 != 1) goto LAB_0010006a;" if (parenthesized_expression "((int)*param_5 != 1)" ( (binary_expression "(int)*param_5 != 1" (cast_expression "(int)*param_5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_5" * identifier)) != number_literal) )) (goto_statement "goto LAB_0010006a;" goto statement_identifier ;)) }))) (expression_statement "*(undefined4 *)(puVar14 + 8) = 7;" (assignment_expression "*(undefined4 *)(puVar14 + 8) = 7" (pointer_expression "*(undefined4 *)(puVar14 + 8)" * (cast_expression "(undefined4 *)(puVar14 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 8)" ( (binary_expression "puVar14 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[9] = (ulong)(puVar14 + 0x20);" (assignment_expression "puVar14[9] = (ulong)(puVar14 + 0x20)" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = (call_expression "(ulong)(puVar14 + 0x20)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar14 + 0x20)" ( (binary_expression "puVar14 + 0x20" identifier + number_literal) )))) ;) (expression_statement "puVar14[10] = 0x20;" (assignment_expression "puVar14[10] = 0x20" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0xb) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" * (cast_expression "(undefined4 *)(puVar14 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xb)" ( (binary_expression "puVar14 + 0xb" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[-1] = 0x100133;" (assignment_expression "puVar14[-1] = 0x100133" (subscript_expression "puVar14[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[-2] = 0x100154;" (assignment_expression "puVar14[-2] = 0x100154" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar14 + 0xc) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 0xc) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 0xc)" * (cast_expression "(undefined4 *)((long)puVar14 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0xc)" ( (binary_expression "(long)puVar14 + 0xc" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar10 = puVar14 + -3;" (assignment_expression "puVar10 = puVar14 + -3" identifier = (binary_expression "puVar14 + -3" identifier + number_literal)) ;) (expression_statement "puVar14[-3] = 0x10015f;" (assignment_expression "puVar14[-3] = 0x10015f" (subscript_expression "puVar14[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[-4] = 0x100172;" (assignment_expression "puVar14[-4] = 0x100172" (subscript_expression "puVar14[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);" (assignment_expression "uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" identifier = (call_expression "(*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" (parenthesized_expression "(*pcRam0000000000100172)" ( (pointer_expression "*pcRam0000000000100172" * identifier) )) (argument_list "(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" ( (binary_expression "puVar14 + 2" identifier + number_literal) , (subscript_expression "puVar14[9]" identifier [ number_literal ]) , (binary_expression "puVar14 + 8" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = (char *)(ulong)uVar2;" (assignment_expression "pcVar9 = (char *)(ulong)uVar2" identifier = (cast_expression "(char *)(ulong)uVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "pbVar7 = extraout_RDX;" (assignment_expression "pbVar7 = extraout_RDX" identifier = identifier) ;) (if_statement "if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }" { (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" identifier = (subscript_expression "unaff_RBP[3]" identifier [ number_literal ])) ;) (expression_statement "puVar14[-4] = 0x100186;" (assignment_expression "puVar14[-4] = 0x100186" (subscript_expression "puVar14[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = (*pcRam0000000000100186)(uVar4);" (assignment_expression "uVar4 = (*pcRam0000000000100186)(uVar4)" identifier = (call_expression "(*pcRam0000000000100186)(uVar4)" (parenthesized_expression "(*pcRam0000000000100186)" ( (pointer_expression "*pcRam0000000000100186" * identifier) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "puVar14[-4] = 0x10018f;" (assignment_expression "puVar14[-4] = 0x10018f" (subscript_expression "puVar14[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[-2] = uVar4;" (assignment_expression "puVar14[-2] = uVar4" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = puVar14 + -5;" (assignment_expression "puVar10 = puVar14 + -5" identifier = (binary_expression "puVar14 + -5" identifier + number_literal)) ;) (expression_statement "puVar14[-5] = 0x1001a1;" (assignment_expression "puVar14[-5] = 0x1001a1" (subscript_expression "puVar14[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[-4] = uVar4;" (assignment_expression "puVar14[-4] = uVar4" (subscript_expression "puVar14[-4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" if (parenthesized_expression "((uVar4 == 0) || (uVar4 == 0))" ( (binary_expression "(uVar4 == 0) || (uVar4 == 0)" (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }" { (if_statement "if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }" if (parenthesized_expression "(puVar14[-3] != 0)" ( (binary_expression "puVar14[-3] != 0" (subscript_expression "puVar14[-3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }" { (expression_statement "puVar10 = puVar14 + -6;" (assignment_expression "puVar10 = puVar14 + -6" identifier = (binary_expression "puVar14 + -6" identifier + number_literal)) ;) (expression_statement "puVar14[-6] = 0x1002f3;" (assignment_expression "puVar14[-6] = 0x1002f3" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }" if (parenthesized_expression "(*(long *)((long)puVar10 + 8) != 0)" ( (binary_expression "*(long *)((long)puVar10 + 8) != 0" (pointer_expression "*(long *)((long)puVar10 + 8)" * (cast_expression "(long *)((long)puVar10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 8)" ( (binary_expression "(long)puVar10 + 8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }" { (expression_statement "puVar16 = (undefined8 *)((long)puVar10 + -8);" (assignment_expression "puVar16 = (undefined8 *)((long)puVar10 + -8)" identifier = (cast_expression "(undefined8 *)((long)puVar10 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + -8)" ( (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puVar10 = (ulong *)((long)puVar10 + -8);" (assignment_expression "puVar10 = (ulong *)((long)puVar10 + -8)" identifier = (cast_expression "(ulong *)((long)puVar10 + -8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + -8)" ( (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar16 = 0x100305;" (assignment_expression "*puVar16 = 0x100305" (pointer_expression "*puVar16" * identifier) = number_literal) ;) })) (expression_statement "*(undefined8 *)((long)puVar10 + -8) = 0x100310;" (assignment_expression "*(undefined8 *)((long)puVar10 + -8) = 0x100310" (pointer_expression "*(undefined8 *)((long)puVar10 + -8)" * (cast_expression "(undefined8 *)((long)puVar10 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + -8)" ( (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcRam0000000000100310)();" (call_expression "(*pcRam0000000000100310)()" (parenthesized_expression "(*pcRam0000000000100310)" ( (pointer_expression "*pcRam0000000000100310" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar9 = (char *)0xd;" (assignment_expression "pcVar9 = (char *)0xd" identifier = (cast_expression "(char *)0xd" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar7 = extraout_RDX_00;" (assignment_expression "pbVar7 = extraout_RDX_00" identifier = identifier) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" { (expression_statement "*(undefined4 *)(puVar14 + 0xb) = 2;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = 2" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" * (cast_expression "(undefined4 *)(puVar14 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xb)" ( (binary_expression "puVar14 + 0xb" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0xc] = *puVar14;" (assignment_expression "puVar14[0xc] = *puVar14" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14[0xd] = 1;" (assignment_expression "puVar14[0xd] = 1" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0xe) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0xe) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0xe)" * (cast_expression "(undefined4 *)(puVar14 + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xe)" ( (binary_expression "puVar14 + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x13) = 5;" (assignment_expression "*(undefined4 *)(puVar14 + 0x13) = 5" (pointer_expression "*(undefined4 *)(puVar14 + 0x13)" * (cast_expression "(undefined4 *)(puVar14 + 0x13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x13)" ( (binary_expression "puVar14 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0x14] = puVar14[-4];" (assignment_expression "puVar14[0x14] = puVar14[-4]" (subscript_expression "puVar14[0x14]" identifier [ number_literal ]) = (subscript_expression "puVar14[-4]" identifier [ number_literal ])) ;) (expression_statement "puVar14[0x15] = 0x80;" (assignment_expression "puVar14[0x15] = 0x80" (subscript_expression "puVar14[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x16) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0x16) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0x16)" * (cast_expression "(undefined4 *)(puVar14 + 0x16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x16)" ( (binary_expression "puVar14 + 0x16" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = 3;" (assignment_expression "uVar6 = 3" identifier = number_literal) ;) (expression_statement "puVar14[-6] = 0x100231;" (assignment_expression "puVar14[-6] = 0x100231" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" identifier = (cast_expression "(char *)(uVar4 & 0xffffffff)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "puVar8 = puVar14 + 3;" (assignment_expression "puVar8 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar14 + -6;" (assignment_expression "puVar17 = puVar14 + -6" identifier = (binary_expression "puVar14 + -6" identifier + number_literal)) ;) (expression_statement "puVar20 = (ulong *)(undefined1 *)0x1;" (assignment_expression "puVar20 = (ulong *)(undefined1 *)0x1" identifier = (cast_expression "(ulong *)(undefined1 *)0x1" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }" { (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" identifier = (subscript_expression "unaff_RBP[3]" identifier [ number_literal ])) ;) (expression_statement "puVar14[-7] = 0x100245;" (assignment_expression "puVar14[-7] = 0x100245" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);" (assignment_expression "lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1)" identifier = (call_expression "(*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1)" (parenthesized_expression "(*pcRam0000000000100245)" ( (pointer_expression "*pcRam0000000000100245" * identifier) )) (argument_list "(uVar4,unaff_R15,puVar14 + 3,3,1)" ( identifier , identifier , (binary_expression "puVar14 + 3" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "uVar4 = lVar5 + 1;" (assignment_expression "uVar4 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "uVar6 = puVar14[-4];" (assignment_expression "uVar6 = puVar14[-4]" identifier = (subscript_expression "puVar14[-4]" identifier [ number_literal ])) ;) (expression_statement "puVar14[-7] = 0x10026c;" (assignment_expression "puVar14[-7] = 0x10026c" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" identifier = (cast_expression "(char *)(uVar4 & 0xffffffff)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "puVar8 = unaff_RBP;" (assignment_expression "puVar8 = unaff_RBP" identifier = identifier) ;) (expression_statement "puVar17 = puVar14 + -7;" (assignment_expression "puVar17 = puVar14 + -7" identifier = (binary_expression "puVar14 + -7" identifier + number_literal)) ;) (expression_statement "unaff_R15 = puVar14[-1];" (assignment_expression "unaff_R15 = puVar14[-1]" identifier = (subscript_expression "puVar14[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = puVar14;" (assignment_expression "puVar20 = puVar14" identifier = identifier) ;) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }" { (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" identifier = (subscript_expression "unaff_RBP[3]" identifier [ number_literal ])) ;) (expression_statement "puVar14[-8] = 0x100280;" (assignment_expression "puVar14[-8] = 0x100280" (subscript_expression "puVar14[-8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);" (assignment_expression "lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" identifier = (call_expression "(*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" (parenthesized_expression "(*pcRam0000000000100280)" ( (pointer_expression "*pcRam0000000000100280" * identifier) )) (argument_list "(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" ( identifier , (subscript_expression "puVar14[-1]" identifier [ number_literal ]) , identifier , identifier , identifier )))) ;) (expression_statement "uVar4 = lVar5 + 1;" (assignment_expression "uVar4 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) (if_statement "if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }" if (parenthesized_expression "(0x80 < uVar4)" ( (binary_expression "0x80 < uVar4" number_literal < identifier) )) (compound_statement "{\n            uVar4 = 0x80;\n          }" { (expression_statement "uVar4 = 0x80;" (assignment_expression "uVar4 = 0x80" identifier = number_literal) ;) })) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "puVar8 = (ulong *)puVar14[-1];" (assignment_expression "puVar8 = (ulong *)puVar14[-1]" identifier = (cast_expression "(ulong *)puVar14[-1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-1]" identifier [ number_literal ]))) ;) (expression_statement "puVar15 = puVar14 + -8;" (assignment_expression "puVar15 = puVar14 + -8" identifier = (binary_expression "puVar14 + -8" identifier + number_literal)) ;) (expression_statement "puVar14[-8] = 0x1002b2;" (assignment_expression "puVar14[-8] = 0x1002b2" (subscript_expression "puVar14[-8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" identifier = (cast_expression "(char *)(uVar4 & 0xffffffff)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" identifier = (binary_expression "puVar14 + -8" identifier + number_literal)) ;) (expression_statement "unaff_R15 = uVar6;" (assignment_expression "unaff_R15 = uVar6" identifier = identifier) ;) (if_statement "if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }" { (expression_statement "puVar17 = (ulong *)puVar14[0x12];" (assignment_expression "puVar17 = (ulong *)puVar14[0x12]" identifier = (cast_expression "(ulong *)puVar14[0x12]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[0x12]" identifier [ number_literal ]))) ;) (if_statement "if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" if (parenthesized_expression "((ulong *)puVar14[-1] < puVar17)" ( (binary_expression "(ulong *)puVar14[-1] < puVar17" (cast_expression "(ulong *)puVar14[-1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-1]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }" { (expression_statement "pcVar9 = (char *)0x7;" (assignment_expression "pcVar9 = (char *)0x7" identifier = (cast_expression "(char *)0x7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" identifier = (binary_expression "puVar14 + -8" identifier + number_literal)) ;) }) (else_clause "else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" else (if_statement "if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" if (parenthesized_expression "((ulong *)*param_4 < puVar17)" ( (binary_expression "(ulong *)*param_4 < puVar17" (cast_expression "(ulong *)*param_4" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) < identifier) )) (compound_statement "{\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }" { (expression_statement "*param_4 = (long)puVar17;" (assignment_expression "*param_4 = (long)puVar17" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "pcVar9 = (char *)0x6;" (assignment_expression "pcVar9 = (char *)0x6" identifier = (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" identifier = (binary_expression "puVar14 + -8" identifier + number_literal)) ;) }) (else_clause "else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" else (compound_statement "{\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" { (expression_statement "puVar14[-2] = 0;" (assignment_expression "puVar14[-2] = 0" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" if (parenthesized_expression "(puVar17 == (ulong *)0x0)" ( (binary_expression "puVar17 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar8 = (ulong *)0x0;\n              }" { (expression_statement "puVar8 = (ulong *)0x0;" (assignment_expression "puVar8 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" else (compound_statement "{\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" { (expression_statement "puVar8 = (ulong *)0x0;" (assignment_expression "puVar8 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar2 = (uint)puVar17 & 7;" (assignment_expression "uVar2 = (uint)puVar17 & 7" identifier = (binary_expression "(uint)puVar17 & 7" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;" if (parenthesized_expression "(((ulong)puVar17 & 7) == 0)" ( (binary_expression "((ulong)puVar17 & 7) == 0" (parenthesized_expression "((ulong)puVar17 & 7)" ( (binary_expression "(ulong)puVar17 & 7" (cast_expression "(ulong)puVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00100435;" goto statement_identifier ;)) (if_statement "if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }" if (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) (compound_statement "{\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }" { (if_statement "if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }" { (if_statement "if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }" if (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) )) (compound_statement "{\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }" { (if_statement "if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }" if (parenthesized_expression "(uVar2 != 4)" ( (binary_expression "uVar2 != 4" identifier != number_literal) )) (compound_statement "{\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }" { (if_statement "if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }" if (parenthesized_expression "(uVar2 != 5)" ( (binary_expression "uVar2 != 5" identifier != number_literal) )) (compound_statement "{\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }" { (if_statement "if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }" if (parenthesized_expression "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )) (compound_statement "{\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }" { (expression_statement "*param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];" (assignment_expression "*param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7]" (pointer_expression "*param_3" * identifier) = (binary_expression "*(byte *)puVar14[-6] ^ *(byte *)puVar14[-7]" (pointer_expression "*(byte *)puVar14[-6]" * (cast_expression "(byte *)puVar14[-6]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-6]" identifier [ number_literal ]))) ^ (pointer_expression "*(byte *)puVar14[-7]" * (cast_expression "(byte *)puVar14[-7]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-7]" identifier [ number_literal ]))))) ;) })) (expression_statement "uVar4 = (ulong)(uVar2 != 6);" (assignment_expression "uVar4 = (ulong)(uVar2 != 6)" identifier = (call_expression "(ulong)(uVar2 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )))) ;) (expression_statement "param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);" (assignment_expression "param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4)" (subscript_expression "param_3[uVar4]" identifier [ identifier ]) = (binary_expression "*(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4)" (pointer_expression "*(byte *)(puVar14[-6] + uVar4)" * (cast_expression "(byte *)(puVar14[-6] + uVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + uVar4)" ( (binary_expression "puVar14[-6] + uVar4" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + identifier) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + uVar4)" * (cast_expression "(byte *)(puVar14[-7] + uVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + uVar4)" ( (binary_expression "puVar14[-7] + uVar4" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + identifier) )))))) ;) (expression_statement "puVar8 = (ulong *)(uVar4 + 1);" (assignment_expression "puVar8 = (ulong *)(uVar4 + 1)" identifier = (cast_expression "(ulong *)(uVar4 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + 1)" ( (binary_expression "uVar4 + 1" identifier + number_literal) )))) ;) })) (expression_statement "param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + (long)puVar8)" ( (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + (long)puVar8)" ( (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "uVar6 = puVar14[-7];" (assignment_expression "uVar6 = puVar14[-7]" identifier = (subscript_expression "puVar14[-7]" identifier [ number_literal ])) ;) (expression_statement "param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + (long)puVar8)" ( (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(uVar6 + (long)puVar8)" * (cast_expression "(byte *)(uVar6 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + (long)puVar8)" ( (binary_expression "uVar6 + (long)puVar8" identifier + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + (long)puVar8)" ( (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + (long)puVar8)" ( (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "unaff_R15 = puVar14[-6];" (assignment_expression "unaff_R15 = puVar14[-6]" identifier = (subscript_expression "puVar14[-6]" identifier [ number_literal ])) ;) (expression_statement "bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8)" identifier = (binary_expression "*(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(unaff_R15 + (long)puVar8)" * (cast_expression "(byte *)(unaff_R15 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R15 + (long)puVar8)" ( (binary_expression "unaff_R15 + (long)puVar8" identifier + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + (long)puVar8)" ( (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "puVar20 = (ulong *)(ulong)bVar19;" (assignment_expression "puVar20 = (ulong *)(ulong)bVar19" identifier = (cast_expression "(ulong *)(ulong)bVar19" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "param_3[(long)puVar8] = bVar19;" (assignment_expression "param_3[(long)puVar8] = bVar19" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = identifier) ;) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + (long)puVar8)" ( (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + (long)puVar8)" ( (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (for_statement "for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }" for ( (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ; (binary_expression "puVar17 != puVar8" identifier != identifier) ; (assignment_expression "puVar8 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ) (compound_statement "{\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }" { (labeled_statement "LAB_00100435:\n                  uVar4 = puVar14[-6];" statement_identifier : (expression_statement "uVar4 = puVar14[-6];" (assignment_expression "uVar4 = puVar14[-6]" identifier = (subscript_expression "puVar14[-6]" identifier [ number_literal ])) ;)) (expression_statement "lVar5 = puVar14[-7];" (assignment_expression "lVar5 = puVar14[-7]" identifier = (subscript_expression "puVar14[-7]" identifier [ number_literal ])) ;) (expression_statement "bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);" (assignment_expression "bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8)" identifier = (binary_expression "*(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8)" (pointer_expression "*(byte *)(uVar4 + (long)puVar8)" * (cast_expression "(byte *)(uVar4 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + (long)puVar8)" ( (binary_expression "uVar4 + (long)puVar8" identifier + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(lVar5 + (long)puVar8)" * (cast_expression "(byte *)(lVar5 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + (long)puVar8)" ( (binary_expression "lVar5 + (long)puVar8" identifier + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "uVar6 = (ulong)bVar19;" (assignment_expression "uVar6 = (ulong)bVar19" identifier = (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "param_3[(long)puVar8] = bVar19;" (assignment_expression "param_3[(long)puVar8] = bVar19" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = identifier) ;) (expression_statement "puVar20 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar20 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;" (assignment_expression "bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)" identifier = (binary_expression "*(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)" (pointer_expression "*(byte *)(uVar4 + 1 + (long)puVar8)" * (cast_expression "(byte *)(uVar4 + 1 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + 1 + (long)puVar8)" ( (binary_expression "uVar4 + 1 + (long)puVar8" (binary_expression "uVar4 + 1" identifier + number_literal) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(lVar5 + 1 + (long)puVar8)" * (cast_expression "(byte *)(lVar5 + 1 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 1 + (long)puVar8)" ( (binary_expression "lVar5 + 1 + (long)puVar8" (binary_expression "lVar5 + 1" identifier + number_literal) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "unaff_R15 = (ulong)bVar19;" (assignment_expression "unaff_R15 = (ulong)bVar19" identifier = (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "(param_3 + 1)[(long)puVar8] = bVar19;" (assignment_expression "(param_3 + 1)[(long)puVar8] = bVar19" (subscript_expression "(param_3 + 1)[(long)puVar8]" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = identifier) ;) (expression_statement "(param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);" (assignment_expression "(param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1)" (subscript_expression "(param_3 + 1)[(long)puVar20]" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 1)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 1)" ( (binary_expression "(long)puVar20 + uVar4 + 1" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 1)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 1)" ( (binary_expression "(long)puVar20 + lVar5 + 1" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);" (assignment_expression "(param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2)" (subscript_expression "(param_3 + 2)[(long)puVar20]" (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 2)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 2)" ( (binary_expression "(long)puVar20 + uVar4 + 2" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 2)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 2)" ( (binary_expression "(long)puVar20 + lVar5 + 2" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);" (assignment_expression "(param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3)" (subscript_expression "(param_3 + 3)[(long)puVar20]" (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 3)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 3)" ( (binary_expression "(long)puVar20 + uVar4 + 3" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 3)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 3)" ( (binary_expression "(long)puVar20 + lVar5 + 3" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);" (assignment_expression "(param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4)" (subscript_expression "(param_3 + 4)[(long)puVar20]" (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 4)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 4)" ( (binary_expression "(long)puVar20 + uVar4 + 4" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 4)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 4)" ( (binary_expression "(long)puVar20 + lVar5 + 4" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);" (assignment_expression "(param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5)" (subscript_expression "(param_3 + 5)[(long)puVar20]" (parenthesized_expression "(param_3 + 5)" ( (binary_expression "param_3 + 5" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 5)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 5)" ( (binary_expression "(long)puVar20 + uVar4 + 5" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 5)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 5)" ( (binary_expression "(long)puVar20 + lVar5 + 5" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);" (assignment_expression "(param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6)" (subscript_expression "(param_3 + 6)[(long)puVar20]" (parenthesized_expression "(param_3 + 6)" ( (binary_expression "param_3 + 6" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 6)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 6)" ( (binary_expression "(long)puVar20 + uVar4 + 6" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 6)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 6)" ( (binary_expression "(long)puVar20 + lVar5 + 6" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) })) (expression_statement "puVar14[-2] = (ulong)puVar8;" (assignment_expression "puVar14[-2] = (ulong)puVar8" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = (cast_expression "(ulong)puVar8" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar14 = puVar20;" (assignment_expression "puVar14 = puVar20" identifier = identifier) ;) }))) (expression_statement "*param_4 = (long)puVar8;" (assignment_expression "*param_4 = (long)puVar8" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "puVar17 = puVar15;" (assignment_expression "puVar17 = puVar15" identifier = identifier) ;) (expression_statement "puVar20 = puVar14;" (assignment_expression "puVar20 = puVar14" identifier = identifier) ;) }))))) })) })) })) (expression_statement "*(undefined8 *)((long)puVar17 + -8) = 0x1004ea;" (assignment_expression "*(undefined8 *)((long)puVar17 + -8) = 0x1004ea" (pointer_expression "*(undefined8 *)((long)puVar17 + -8)" * (cast_expression "(undefined8 *)((long)puVar17 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -8)" ( (binary_expression "(long)puVar17 + -8" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar10 = (ulong *)((long)puVar17 + -0x10);" (assignment_expression "puVar10 = (ulong *)((long)puVar17 + -0x10)" identifier = (cast_expression "(ulong *)((long)puVar17 + -0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0x10)" ( (binary_expression "(long)puVar17 + -0x10" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;" (assignment_expression "*(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4" (pointer_expression "*(undefined8 *)((long)puVar17 + -0x10)" * (cast_expression "(undefined8 *)((long)puVar17 + -0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0x10)" ( (binary_expression "(long)puVar17 + -0x10" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;" (assignment_expression "*(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff" (pointer_expression "*(undefined8 *)((long)puVar17 + -0x18)" * (cast_expression "(undefined8 *)((long)puVar17 + -0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0x18)" ( (binary_expression "(long)puVar17 + -0x18" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;" (call_expression "(*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)" (parenthesized_expression "(*pcRam00000000001004ff)" ( (pointer_expression "*pcRam00000000001004ff" * identifier) )) (argument_list "(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)" ( (pointer_expression "*(undefined8 *)((long)puVar17 + 0x18)" * (cast_expression "(undefined8 *)((long)puVar17 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + 0x18)" ( (binary_expression "(long)puVar17 + 0x18" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "pbVar7 = extraout_RDX_01;" (assignment_expression "pbVar7 = extraout_RDX_01" identifier = identifier) ;) }))) })) (labeled_statement "LAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" statement_identifier : (if_statement "if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)" (pointer_expression "*(long *)((long)puVar10 + 0x208)" * (cast_expression "(long *)((long)puVar10 + 0x208)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0x208)" ( (binary_expression "(long)puVar10 + 0x208" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "*(undefined8 *)((long)puVar10 + -8) = 0x100513;" (assignment_expression "*(undefined8 *)((long)puVar10 + -8) = 0x100513" (pointer_expression "*(undefined8 *)((long)puVar10 + -8)" * (cast_expression "(undefined8 *)((long)puVar10 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + -8)" ( (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*pcVar9 = *pcVar9 + (char)pcVar9;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" * identifier) + (cast_expression "(char)pcVar9" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*pcVar9 = *pcVar9 + (char)pcVar9;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" * identifier) + (cast_expression "(char)pcVar9" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*pcVar9 = *pcVar9 + (char)pbVar7;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pbVar7" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + (char)pbVar7" (pointer_expression "*pcVar9" * identifier) + (cast_expression "(char)pbVar7" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = (uint)pcVar9 + 0x42000000;" (assignment_expression "iVar3 = (uint)pcVar9 + 0x42000000" identifier = (binary_expression "(uint)pcVar9 + 0x42000000" (cast_expression "(uint)pcVar9" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);" (assignment_expression "cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9)" identifier = (binary_expression "(char)iVar3 - (0xbdffffff < (uint)pcVar9)" (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier) - (parenthesized_expression "(0xbdffffff < (uint)pcVar9)" ( (binary_expression "0xbdffffff < (uint)pcVar9" number_literal < (cast_expression "(uint)pcVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);" (assignment_expression "pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" identifier = (cast_expression "(char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" identifier (argument_list "((int3)((uint)iVar3 >> 8),cVar1)" ( (call_expression "(int3)((uint)iVar3 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar3 >> 8)" ( (binary_expression "(uint)iVar3 >> 8" (cast_expression "(uint)iVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier )))))) ;) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) + identifier)) ;) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) + identifier)) ;) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) + identifier)) ;) comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Unknown calling convention */\n\nint dsa_decrypt_key(uchar *in,ulong inlen,uchar *out,ulong *outlen,dsa_key *key)\n\n{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  byte *__ptr;\n  byte *__ptr_00;\n  long lVar4;\n  ulong uVar5;\n  dsa_key *unaff_RBP;\n  ulong *puVar6;\n  uint uVar7;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  void *g_pub;\n  ulong x;\n  ulong y;\n  ltc_asn1_list decode [3];\n  ulong hashOID [32];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  puVar6 = hashOID;\n  for (lVar4 = 0x20; lVar4 != 0; lVar4 = lVar4 + -1) {\n    *puVar6 = 0;\n    puVar6 = puVar6 + 1;\n  }\n  if (in == (uchar *)0x0) {\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26);\nLAB_001000ad:\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);\nLAB_001000c5:\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);\nLAB_001000dd:\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);\n  }\n  else {\n    unaff_RBP = key;\n    unaff_R15 = inlen;\n    if (out == (uchar *)0x0) goto LAB_001000ad;\n    if (outlen == (ulong *)0x0) goto LAB_001000c5;\n    if (key == (dsa_key *)0x0) goto LAB_001000dd;\n    iVar2 = 0xf;\n    if (key->type != 1) goto LAB_0010006a;\n  }\n  decode[0].type = LTC_ASN1_OBJECT_IDENTIFIER;\n  decode[0].data = hashOID;\n  decode[0].size = 0x20;\n  decode[0].used = 0;\n  iVar2 = der_decode_sequence_ex(in);\n  if ((iVar2 == 0) || (iVar2 == 0x15)) {\n    uVar3 = find_hash_oid(hashOID,decode[0].size);\n    iVar2 = hash_is_valid(uVar3);\n    if (iVar2 == 0) {\n      iVar2 = (*_dsa_shared_secret)(&g_pub);\n      if (iVar2 == 0) {\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }\n    }\n    else {\n      iVar2 = 7;\n    }\n  }\nLAB_0010006a:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment comment (function_definition "int dsa_decrypt_key(uchar *in,ulong inlen,uchar *out,ulong *outlen,dsa_key *key)\n\n{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  byte *__ptr;\n  byte *__ptr_00;\n  long lVar4;\n  ulong uVar5;\n  dsa_key *unaff_RBP;\n  ulong *puVar6;\n  uint uVar7;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  void *g_pub;\n  ulong x;\n  ulong y;\n  ltc_asn1_list decode [3];\n  ulong hashOID [32];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  puVar6 = hashOID;\n  for (lVar4 = 0x20; lVar4 != 0; lVar4 = lVar4 + -1) {\n    *puVar6 = 0;\n    puVar6 = puVar6 + 1;\n  }\n  if (in == (uchar *)0x0) {\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26);\nLAB_001000ad:\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);\nLAB_001000c5:\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);\nLAB_001000dd:\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);\n  }\n  else {\n    unaff_RBP = key;\n    unaff_R15 = inlen;\n    if (out == (uchar *)0x0) goto LAB_001000ad;\n    if (outlen == (ulong *)0x0) goto LAB_001000c5;\n    if (key == (dsa_key *)0x0) goto LAB_001000dd;\n    iVar2 = 0xf;\n    if (key->type != 1) goto LAB_0010006a;\n  }\n  decode[0].type = LTC_ASN1_OBJECT_IDENTIFIER;\n  decode[0].data = hashOID;\n  decode[0].size = 0x20;\n  decode[0].used = 0;\n  iVar2 = der_decode_sequence_ex(in);\n  if ((iVar2 == 0) || (iVar2 == 0x15)) {\n    uVar3 = find_hash_oid(hashOID,decode[0].size);\n    iVar2 = hash_is_valid(uVar3);\n    if (iVar2 == 0) {\n      iVar2 = (*_dsa_shared_secret)(&g_pub);\n      if (iVar2 == 0) {\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }\n    }\n    else {\n      iVar2 = 7;\n    }\n  }\nLAB_0010006a:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "dsa_decrypt_key(uchar *in,ulong inlen,uchar *out,ulong *outlen,dsa_key *key)" identifier (parameter_list "(uchar *in,ulong inlen,uchar *out,ulong *outlen,dsa_key *key)" ( (parameter_declaration "uchar *in" type_identifier (pointer_declarator "*in" * identifier)) , (parameter_declaration "ulong inlen" type_identifier identifier) , (parameter_declaration "uchar *out" type_identifier (pointer_declarator "*out" * identifier)) , (parameter_declaration "ulong *outlen" type_identifier (pointer_declarator "*outlen" * identifier)) , (parameter_declaration "dsa_key *key" type_identifier (pointer_declarator "*key" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  byte *__ptr;\n  byte *__ptr_00;\n  long lVar4;\n  ulong uVar5;\n  dsa_key *unaff_RBP;\n  ulong *puVar6;\n  uint uVar7;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  void *g_pub;\n  ulong x;\n  ulong y;\n  ltc_asn1_list decode [3];\n  ulong hashOID [32];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  puVar6 = hashOID;\n  for (lVar4 = 0x20; lVar4 != 0; lVar4 = lVar4 + -1) {\n    *puVar6 = 0;\n    puVar6 = puVar6 + 1;\n  }\n  if (in == (uchar *)0x0) {\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26);\nLAB_001000ad:\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);\nLAB_001000c5:\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);\nLAB_001000dd:\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);\n  }\n  else {\n    unaff_RBP = key;\n    unaff_R15 = inlen;\n    if (out == (uchar *)0x0) goto LAB_001000ad;\n    if (outlen == (ulong *)0x0) goto LAB_001000c5;\n    if (key == (dsa_key *)0x0) goto LAB_001000dd;\n    iVar2 = 0xf;\n    if (key->type != 1) goto LAB_0010006a;\n  }\n  decode[0].type = LTC_ASN1_OBJECT_IDENTIFIER;\n  decode[0].data = hashOID;\n  decode[0].size = 0x20;\n  decode[0].used = 0;\n  iVar2 = der_decode_sequence_ex(in);\n  if ((iVar2 == 0) || (iVar2 == 0x15)) {\n    uVar3 = find_hash_oid(hashOID,decode[0].size);\n    iVar2 = hash_is_valid(uVar3);\n    if (iVar2 == 0) {\n      iVar2 = (*_dsa_shared_secret)(&g_pub);\n      if (iVar2 == 0) {\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }\n    }\n    else {\n      iVar2 = 7;\n    }\n  }\nLAB_0010006a:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "byte *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "byte *__ptr_00;" type_identifier (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "dsa_key *unaff_RBP;" type_identifier (pointer_declarator "*unaff_RBP" * identifier) ;) (declaration "ulong *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "ulong unaff_R15;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "void *g_pub;" primitive_type (pointer_declarator "*g_pub" * identifier) ;) (declaration "ulong x;" type_identifier identifier ;) (declaration "ulong y;" type_identifier identifier ;) (declaration "ltc_asn1_list decode [3];" type_identifier (array_declarator "decode [3]" identifier [ number_literal ]) ;) (declaration "ulong hashOID [32];" type_identifier (array_declarator "hashOID [32]" identifier [ number_literal ]) ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = hashOID;" (assignment_expression "puVar6 = hashOID" identifier = identifier) ;) (for_statement "for (lVar4 = 0x20; lVar4 != 0; lVar4 = lVar4 + -1) {\n    *puVar6 = 0;\n    puVar6 = puVar6 + 1;\n  }" for ( (assignment_expression "lVar4 = 0x20" identifier = number_literal) ; (binary_expression "lVar4 != 0" identifier != number_literal) ; (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar6 = 0;\n    puVar6 = puVar6 + 1;\n  }" { (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) })) (if_statement "if (in == (uchar *)0x0) {\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26);\nLAB_001000ad:\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);\nLAB_001000c5:\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);\nLAB_001000dd:\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);\n  }\n  else {\n    unaff_RBP = key;\n    unaff_R15 = inlen;\n    if (out == (uchar *)0x0) goto LAB_001000ad;\n    if (outlen == (ulong *)0x0) goto LAB_001000c5;\n    if (key == (dsa_key *)0x0) goto LAB_001000dd;\n    iVar2 = 0xf;\n    if (key->type != 1) goto LAB_0010006a;\n  }" if (parenthesized_expression "(in == (uchar *)0x0)" ( (binary_expression "in == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26);\nLAB_001000ad:\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);\nLAB_001000c5:\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);\nLAB_001000dd:\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);\n  }" { (expression_statement "crypt_argchk("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26);" (call_expression "crypt_argchk("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26)" identifier (argument_list "("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_decrypt_key.c"" " string_content ") , number_literal ))) ;) (labeled_statement "LAB_001000ad:\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);" statement_identifier : (expression_statement "crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);" (call_expression "crypt_argchk("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27)" identifier (argument_list "("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_decrypt_key.c"" " string_content ") , number_literal ))) ;)) (labeled_statement "LAB_001000c5:\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);" statement_identifier : (expression_statement "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);" (call_expression "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28)" identifier (argument_list "("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28)" ( (string_literal ""outlen != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_decrypt_key.c"" " string_content ") , number_literal ))) ;)) (labeled_statement "LAB_001000dd:\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);" statement_identifier : (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_decrypt_key.c"" " string_content ") , number_literal ))) ;)) }) (else_clause "else {\n    unaff_RBP = key;\n    unaff_R15 = inlen;\n    if (out == (uchar *)0x0) goto LAB_001000ad;\n    if (outlen == (ulong *)0x0) goto LAB_001000c5;\n    if (key == (dsa_key *)0x0) goto LAB_001000dd;\n    iVar2 = 0xf;\n    if (key->type != 1) goto LAB_0010006a;\n  }" else (compound_statement "{\n    unaff_RBP = key;\n    unaff_R15 = inlen;\n    if (out == (uchar *)0x0) goto LAB_001000ad;\n    if (outlen == (ulong *)0x0) goto LAB_001000c5;\n    if (key == (dsa_key *)0x0) goto LAB_001000dd;\n    iVar2 = 0xf;\n    if (key->type != 1) goto LAB_0010006a;\n  }" { (expression_statement "unaff_RBP = key;" (assignment_expression "unaff_RBP = key" identifier = identifier) ;) (expression_statement "unaff_R15 = inlen;" (assignment_expression "unaff_R15 = inlen" identifier = identifier) ;) (if_statement "if (out == (uchar *)0x0) goto LAB_001000ad;" 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)) )) (goto_statement "goto LAB_001000ad;" goto statement_identifier ;)) (if_statement "if (outlen == (ulong *)0x0) goto LAB_001000c5;" if (parenthesized_expression "(outlen == (ulong *)0x0)" ( (binary_expression "outlen == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001000c5;" goto statement_identifier ;)) (if_statement "if (key == (dsa_key *)0x0) goto LAB_001000dd;" if (parenthesized_expression "(key == (dsa_key *)0x0)" ( (binary_expression "key == (dsa_key *)0x0" identifier == (cast_expression "(dsa_key *)0x0" ( (type_descriptor "dsa_key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001000dd;" goto statement_identifier ;)) (expression_statement "iVar2 = 0xf;" (assignment_expression "iVar2 = 0xf" identifier = number_literal) ;) (if_statement "if (key->type != 1) goto LAB_0010006a;" if (parenthesized_expression "(key->type != 1)" ( (binary_expression "key->type != 1" (field_expression "key->type" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_0010006a;" goto statement_identifier ;)) }))) (expression_statement "decode[0].type = LTC_ASN1_OBJECT_IDENTIFIER;" (assignment_expression "decode[0].type = LTC_ASN1_OBJECT_IDENTIFIER" (field_expression "decode[0].type" (subscript_expression "decode[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "decode[0].data = hashOID;" (assignment_expression "decode[0].data = hashOID" (field_expression "decode[0].data" (subscript_expression "decode[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "decode[0].size = 0x20;" (assignment_expression "decode[0].size = 0x20" (field_expression "decode[0].size" (subscript_expression "decode[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "decode[0].used = 0;" (assignment_expression "decode[0].used = 0" (field_expression "decode[0].used" (subscript_expression "decode[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "iVar2 = der_decode_sequence_ex(in);" (assignment_expression "iVar2 = der_decode_sequence_ex(in)" identifier = (call_expression "der_decode_sequence_ex(in)" identifier (argument_list "(in)" ( identifier )))) ;) (if_statement "if ((iVar2 == 0) || (iVar2 == 0x15)) {\n    uVar3 = find_hash_oid(hashOID,decode[0].size);\n    iVar2 = hash_is_valid(uVar3);\n    if (iVar2 == 0) {\n      iVar2 = (*_dsa_shared_secret)(&g_pub);\n      if (iVar2 == 0) {\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }\n    }\n    else {\n      iVar2 = 7;\n    }\n  }" if (parenthesized_expression "((iVar2 == 0) || (iVar2 == 0x15))" ( (binary_expression "(iVar2 == 0) || (iVar2 == 0x15)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 0x15)" ( (binary_expression "iVar2 == 0x15" identifier == number_literal) ))) )) (compound_statement "{\n    uVar3 = find_hash_oid(hashOID,decode[0].size);\n    iVar2 = hash_is_valid(uVar3);\n    if (iVar2 == 0) {\n      iVar2 = (*_dsa_shared_secret)(&g_pub);\n      if (iVar2 == 0) {\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }\n    }\n    else {\n      iVar2 = 7;\n    }\n  }" { (expression_statement "uVar3 = find_hash_oid(hashOID,decode[0].size);" (assignment_expression "uVar3 = find_hash_oid(hashOID,decode[0].size)" identifier = (call_expression "find_hash_oid(hashOID,decode[0].size)" identifier (argument_list "(hashOID,decode[0].size)" ( identifier , (field_expression "decode[0].size" (subscript_expression "decode[0]" identifier [ number_literal ]) . field_identifier) )))) ;) (expression_statement "iVar2 = hash_is_valid(uVar3);" (assignment_expression "iVar2 = hash_is_valid(uVar3)" identifier = (call_expression "hash_is_valid(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = (*_dsa_shared_secret)(&g_pub);\n      if (iVar2 == 0) {\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }\n    }\n    else {\n      iVar2 = 7;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = (*_dsa_shared_secret)(&g_pub);\n      if (iVar2 == 0) {\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }\n    }" { (expression_statement "iVar2 = (*_dsa_shared_secret)(&g_pub);" (assignment_expression "iVar2 = (*_dsa_shared_secret)(&g_pub)" identifier = (call_expression "(*_dsa_shared_secret)(&g_pub)" (parenthesized_expression "(*_dsa_shared_secret)" ( (pointer_expression "*_dsa_shared_secret" * identifier) )) (argument_list "(&g_pub)" ( (pointer_expression "&g_pub" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n        __ptr = (byte *)malloc(lVar4 + 1);\n        __ptr_00 = (byte *)malloc(0x80);\n        if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }\n      }" { (expression_statement "lVar4 = (*_DAT_001010b0)(unaff_RBP->p);" (assignment_expression "lVar4 = (*_DAT_001010b0)(unaff_RBP->p)" identifier = (call_expression "(*_DAT_001010b0)(unaff_RBP->p)" (parenthesized_expression "(*_DAT_001010b0)" ( (pointer_expression "*_DAT_001010b0" * identifier) )) (argument_list "(unaff_RBP->p)" ( (field_expression "unaff_RBP->p" identifier -> field_identifier) )))) ;) (expression_statement "__ptr = (byte *)malloc(lVar4 + 1);" (assignment_expression "__ptr = (byte *)malloc(lVar4 + 1)" identifier = (cast_expression "(byte *)malloc(lVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(lVar4 + 1)" identifier (argument_list "(lVar4 + 1)" ( (binary_expression "lVar4 + 1" identifier + number_literal) ))))) ;) (expression_statement "__ptr_00 = (byte *)malloc(0x80);" (assignment_expression "__ptr_00 = (byte *)malloc(0x80)" identifier = (cast_expression "(byte *)malloc(0x80)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (if_statement "if ((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)) {\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }\n        else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }" if (parenthesized_expression "((__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0))" ( (binary_expression "(__ptr == (byte *)0x0) || (__ptr_00 == (byte *)0x0)" (parenthesized_expression "(__ptr == (byte *)0x0)" ( (binary_expression "__ptr == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__ptr_00 == (byte *)0x0)" ( (binary_expression "__ptr_00 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }\n          if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }\n          (*_free)(g_pub);\n          iVar2 = 0xd;\n        }" { (if_statement "if (__ptr != (byte *)0x0) {\n            free(__ptr);\n          }" if (parenthesized_expression "(__ptr != (byte *)0x0)" ( (binary_expression "__ptr != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(__ptr);\n          }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (if_statement "if (__ptr_00 != (byte *)0x0) {\n            free(__ptr_00);\n          }" if (parenthesized_expression "(__ptr_00 != (byte *)0x0)" ( (binary_expression "__ptr_00 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(__ptr_00);\n          }" { (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) })) (expression_statement "(*_free)(g_pub);" (call_expression "(*_free)(g_pub)" (parenthesized_expression "(*_free)" ( (pointer_expression "*_free" * identifier) )) (argument_list "(g_pub)" ( identifier ))) ;) (expression_statement "iVar2 = 0xd;" (assignment_expression "iVar2 = 0xd" identifier = number_literal) ;) }) (else_clause "else {\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }" else (compound_statement "{\n          decode[1].type = LTC_ASN1_INTEGER;\n          decode[1].data = g_pub;\n          decode[1].size = 1;\n          decode[1].used = 0;\n          decode[2].type = LTC_ASN1_OCTET_STRING;\n          decode[2].size = 0x80;\n          decode[2].used = 0;\n          decode[2].data = __ptr_00;\n          iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);\n          if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }\n          free(__ptr);\n          free(__ptr_00);\n          (*_free)(g_pub);\n        }" { (expression_statement "decode[1].type = LTC_ASN1_INTEGER;" (assignment_expression "decode[1].type = LTC_ASN1_INTEGER" (field_expression "decode[1].type" (subscript_expression "decode[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "decode[1].data = g_pub;" (assignment_expression "decode[1].data = g_pub" (field_expression "decode[1].data" (subscript_expression "decode[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "decode[1].size = 1;" (assignment_expression "decode[1].size = 1" (field_expression "decode[1].size" (subscript_expression "decode[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "decode[1].used = 0;" (assignment_expression "decode[1].used = 0" (field_expression "decode[1].used" (subscript_expression "decode[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "decode[2].type = LTC_ASN1_OCTET_STRING;" (assignment_expression "decode[2].type = LTC_ASN1_OCTET_STRING" (field_expression "decode[2].type" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "decode[2].size = 0x80;" (assignment_expression "decode[2].size = 0x80" (field_expression "decode[2].size" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "decode[2].used = 0;" (assignment_expression "decode[2].used = 0" (field_expression "decode[2].used" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "decode[2].data = __ptr_00;" (assignment_expression "decode[2].data = __ptr_00" (field_expression "decode[2].data" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1);" (assignment_expression "iVar2 = der_decode_sequence_ex(in,unaff_R15,decode,3,1)" identifier = (call_expression "der_decode_sequence_ex(in,unaff_R15,decode,3,1)" identifier (argument_list "(in,unaff_R15,decode,3,1)" ( identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n            x = lVar4 + 1;\n            iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);\n            if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }\n          }" { (expression_statement "lVar4 = (*_DAT_001010b0)(unaff_RBP->p);" (assignment_expression "lVar4 = (*_DAT_001010b0)(unaff_RBP->p)" identifier = (call_expression "(*_DAT_001010b0)(unaff_RBP->p)" (parenthesized_expression "(*_DAT_001010b0)" ( (pointer_expression "*_DAT_001010b0" * identifier) )) (argument_list "(unaff_RBP->p)" ( (field_expression "unaff_RBP->p" identifier -> field_identifier) )))) ;) (expression_statement "x = lVar4 + 1;" (assignment_expression "x = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x);" (assignment_expression "iVar2 = dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x)" identifier = (call_expression "dsa_shared_secret(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x)" identifier (argument_list "(unaff_RBP->x,g_pub,unaff_RBP,__ptr,&x)" ( (field_expression "unaff_RBP->x" identifier -> field_identifier) , identifier , identifier , identifier , (pointer_expression "&x" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar4 = (*_DAT_001010b0)(unaff_RBP->p);\n              y = lVar4 + 1;\n              if (0x80 < y) {\n                y = 0x80;\n              }\n              iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);\n              if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }\n            }" { (expression_statement "lVar4 = (*_DAT_001010b0)(unaff_RBP->p);" (assignment_expression "lVar4 = (*_DAT_001010b0)(unaff_RBP->p)" identifier = (call_expression "(*_DAT_001010b0)(unaff_RBP->p)" (parenthesized_expression "(*_DAT_001010b0)" ( (pointer_expression "*_DAT_001010b0" * identifier) )) (argument_list "(unaff_RBP->p)" ( (field_expression "unaff_RBP->p" identifier -> field_identifier) )))) ;) (expression_statement "y = lVar4 + 1;" (assignment_expression "y = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) (if_statement "if (0x80 < y) {\n                y = 0x80;\n              }" if (parenthesized_expression "(0x80 < y)" ( (binary_expression "0x80 < y" number_literal < identifier) )) (compound_statement "{\n                y = 0x80;\n              }" { (expression_statement "y = 0x80;" (assignment_expression "y = 0x80" identifier = number_literal) ;) })) (expression_statement "iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y);" (assignment_expression "iVar2 = hash_memory(uVar3,__ptr,x,__ptr,&y)" identifier = (call_expression "hash_memory(uVar3,__ptr,x,__ptr,&y)" identifier (argument_list "(uVar3,__ptr,x,__ptr,&y)" ( identifier , identifier , identifier , identifier , (pointer_expression "&y" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }\n              }" { (if_statement "if (y < decode[2].size) {\n                  iVar2 = 7;\n                }\n                else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }" if (parenthesized_expression "(y < decode[2].size)" ( (binary_expression "y < decode[2].size" identifier < (field_expression "decode[2].size" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n                  iVar2 = 7;\n                }" { (expression_statement "iVar2 = 7;" (assignment_expression "iVar2 = 7" identifier = number_literal) ;) }) (else_clause "else if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }" else (if_statement "if (*outlen < decode[2].size) {\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }\n                else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }" if (parenthesized_expression "(*outlen < decode[2].size)" ( (binary_expression "*outlen < decode[2].size" (pointer_expression "*outlen" * identifier) < (field_expression "decode[2].size" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n                  *outlen = decode[2].size;\n                  iVar2 = 6;\n                }" { (expression_statement "*outlen = decode[2].size;" (assignment_expression "*outlen = decode[2].size" (pointer_expression "*outlen" * identifier) = (field_expression "decode[2].size" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar2 = 6;" (assignment_expression "iVar2 = 6" identifier = number_literal) ;) }) (else_clause "else {\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }" else (compound_statement "{\n                  x = 0;\n                  if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }\n                  *outlen = x;\n                }" { (expression_statement "x = 0;" (assignment_expression "x = 0" identifier = number_literal) ;) (if_statement "if (decode[2].size != 0) {\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }" if (parenthesized_expression "(decode[2].size != 0)" ( (binary_expression "decode[2].size != 0" (field_expression "decode[2].size" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier) != number_literal) )) (compound_statement "{\n                    x = 0;\n                    uVar7 = (uint)decode[2].size & 7;\n                    if ((decode[2].size & 7) == 0) goto LAB_00100435;\n                    if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }\n                    out[x] = __ptr[x] ^ __ptr_00[x];\n                    for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }\n                  }" { (expression_statement "x = 0;" (assignment_expression "x = 0" identifier = number_literal) ;) (expression_statement "uVar7 = (uint)decode[2].size & 7;" (assignment_expression "uVar7 = (uint)decode[2].size & 7" identifier = (binary_expression "(uint)decode[2].size & 7" (cast_expression "(uint)decode[2].size" ( (type_descriptor "uint" type_identifier) ) (field_expression "decode[2].size" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier)) & number_literal)) ;) (if_statement "if ((decode[2].size & 7) == 0) goto LAB_00100435;" if (parenthesized_expression "((decode[2].size & 7) == 0)" ( (binary_expression "(decode[2].size & 7) == 0" (parenthesized_expression "(decode[2].size & 7)" ( (binary_expression "decode[2].size & 7" (field_expression "decode[2].size" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00100435;" goto statement_identifier ;)) (if_statement "if (uVar7 != 1) {\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n                      if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      x = x + 1;\n                    }" { (if_statement "if (uVar7 != 2) {\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }" if (parenthesized_expression "(uVar7 != 2)" ( (binary_expression "uVar7 != 2" identifier != number_literal) )) (compound_statement "{\n                        if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }\n                        out[x] = __ptr[x] ^ __ptr_00[x];\n                        x = x + 1;\n                      }" { (if_statement "if (uVar7 != 3) {\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }" if (parenthesized_expression "(uVar7 != 3)" ( (binary_expression "uVar7 != 3" identifier != number_literal) )) (compound_statement "{\n                          if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }\n                          out[x] = __ptr[x] ^ __ptr_00[x];\n                          x = x + 1;\n                        }" { (if_statement "if (uVar7 != 4) {\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }" if (parenthesized_expression "(uVar7 != 4)" ( (binary_expression "uVar7 != 4" identifier != number_literal) )) (compound_statement "{\n                            if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }\n                            out[x] = __ptr[x] ^ __ptr_00[x];\n                            x = x + 1;\n                          }" { (if_statement "if (uVar7 != 5) {\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }" if (parenthesized_expression "(uVar7 != 5)" ( (binary_expression "uVar7 != 5" identifier != number_literal) )) (compound_statement "{\n                              if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }\n                              uVar5 = (ulong)(uVar7 != 6);\n                              out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];\n                              x = uVar5 + 1;\n                            }" { (if_statement "if (uVar7 != 6) {\n                                *out = *__ptr ^ *__ptr_00;\n                              }" if (parenthesized_expression "(uVar7 != 6)" ( (binary_expression "uVar7 != 6" identifier != number_literal) )) (compound_statement "{\n                                *out = *__ptr ^ *__ptr_00;\n                              }" { (expression_statement "*out = *__ptr ^ *__ptr_00;" (assignment_expression "*out = *__ptr ^ *__ptr_00" (pointer_expression "*out" * identifier) = (binary_expression "*__ptr ^ *__ptr_00" (pointer_expression "*__ptr" * identifier) ^ (pointer_expression "*__ptr_00" * identifier))) ;) })) (expression_statement "uVar5 = (ulong)(uVar7 != 6);" (assignment_expression "uVar5 = (ulong)(uVar7 != 6)" identifier = (call_expression "(ulong)(uVar7 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 != 6)" ( (binary_expression "uVar7 != 6" identifier != number_literal) )))) ;) (expression_statement "out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5];" (assignment_expression "out[uVar5] = __ptr[uVar5] ^ __ptr_00[uVar5]" (subscript_expression "out[uVar5]" identifier [ identifier ]) = (binary_expression "__ptr[uVar5] ^ __ptr_00[uVar5]" (subscript_expression "__ptr[uVar5]" identifier [ identifier ]) ^ (subscript_expression "__ptr_00[uVar5]" identifier [ identifier ]))) ;) (expression_statement "x = uVar5 + 1;" (assignment_expression "x = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "out[x] = __ptr[x] ^ __ptr_00[x];" (assignment_expression "out[x] = __ptr[x] ^ __ptr_00[x]" (subscript_expression "out[x]" identifier [ identifier ]) = (binary_expression "__ptr[x] ^ __ptr_00[x]" (subscript_expression "__ptr[x]" identifier [ identifier ]) ^ (subscript_expression "__ptr_00[x]" identifier [ identifier ]))) ;) (expression_statement "x = x + 1;" (assignment_expression "x = x + 1" identifier = (binary_expression "x + 1" identifier + number_literal)) ;) })) (expression_statement "out[x] = __ptr[x] ^ __ptr_00[x];" (assignment_expression "out[x] = __ptr[x] ^ __ptr_00[x]" (subscript_expression "out[x]" identifier [ identifier ]) = (binary_expression "__ptr[x] ^ __ptr_00[x]" (subscript_expression "__ptr[x]" identifier [ identifier ]) ^ (subscript_expression "__ptr_00[x]" identifier [ identifier ]))) ;) (expression_statement "x = x + 1;" (assignment_expression "x = x + 1" identifier = (binary_expression "x + 1" identifier + number_literal)) ;) })) (expression_statement "out[x] = __ptr[x] ^ __ptr_00[x];" (assignment_expression "out[x] = __ptr[x] ^ __ptr_00[x]" (subscript_expression "out[x]" identifier [ identifier ]) = (binary_expression "__ptr[x] ^ __ptr_00[x]" (subscript_expression "__ptr[x]" identifier [ identifier ]) ^ (subscript_expression "__ptr_00[x]" identifier [ identifier ]))) ;) (expression_statement "x = x + 1;" (assignment_expression "x = x + 1" identifier = (binary_expression "x + 1" identifier + number_literal)) ;) })) (expression_statement "out[x] = __ptr[x] ^ __ptr_00[x];" (assignment_expression "out[x] = __ptr[x] ^ __ptr_00[x]" (subscript_expression "out[x]" identifier [ identifier ]) = (binary_expression "__ptr[x] ^ __ptr_00[x]" (subscript_expression "__ptr[x]" identifier [ identifier ]) ^ (subscript_expression "__ptr_00[x]" identifier [ identifier ]))) ;) (expression_statement "x = x + 1;" (assignment_expression "x = x + 1" identifier = (binary_expression "x + 1" identifier + number_literal)) ;) })) (expression_statement "out[x] = __ptr[x] ^ __ptr_00[x];" (assignment_expression "out[x] = __ptr[x] ^ __ptr_00[x]" (subscript_expression "out[x]" identifier [ identifier ]) = (binary_expression "__ptr[x] ^ __ptr_00[x]" (subscript_expression "__ptr[x]" identifier [ identifier ]) ^ (subscript_expression "__ptr_00[x]" identifier [ identifier ]))) ;) (for_statement "for (x = x + 1; decode[2].size != x; x = x + 8) {\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }" for ( (assignment_expression "x = x + 1" identifier = (binary_expression "x + 1" identifier + number_literal)) ; (binary_expression "decode[2].size != x" (field_expression "decode[2].size" (subscript_expression "decode[2]" identifier [ number_literal ]) . field_identifier) != identifier) ; (assignment_expression "x = x + 8" identifier = (binary_expression "x + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];\n                      out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];\n                      out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];\n                      out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];\n                      out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];\n                      out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];\n                      out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];\n                      out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];\n                    }" { (labeled_statement "LAB_00100435:\n                      out[x] = __ptr[x] ^ __ptr_00[x];" statement_identifier : (expression_statement "out[x] = __ptr[x] ^ __ptr_00[x];" (assignment_expression "out[x] = __ptr[x] ^ __ptr_00[x]" (subscript_expression "out[x]" identifier [ identifier ]) = (binary_expression "__ptr[x] ^ __ptr_00[x]" (subscript_expression "__ptr[x]" identifier [ identifier ]) ^ (subscript_expression "__ptr_00[x]" identifier [ identifier ]))) ;)) (expression_statement "out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1];" (assignment_expression "out[x + 1] = __ptr[x + 1] ^ __ptr_00[x + 1]" (subscript_expression "out[x + 1]" identifier [ (binary_expression "x + 1" identifier + number_literal) ]) = (binary_expression "__ptr[x + 1] ^ __ptr_00[x + 1]" (subscript_expression "__ptr[x + 1]" identifier [ (binary_expression "x + 1" identifier + number_literal) ]) ^ (subscript_expression "__ptr_00[x + 1]" identifier [ (binary_expression "x + 1" identifier + number_literal) ]))) ;) (expression_statement "out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2];" (assignment_expression "out[x + 2] = __ptr[x + 2] ^ __ptr_00[x + 2]" (subscript_expression "out[x + 2]" identifier [ (binary_expression "x + 2" identifier + number_literal) ]) = (binary_expression "__ptr[x + 2] ^ __ptr_00[x + 2]" (subscript_expression "__ptr[x + 2]" identifier [ (binary_expression "x + 2" identifier + number_literal) ]) ^ (subscript_expression "__ptr_00[x + 2]" identifier [ (binary_expression "x + 2" identifier + number_literal) ]))) ;) (expression_statement "out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3];" (assignment_expression "out[x + 3] = __ptr[x + 3] ^ __ptr_00[x + 3]" (subscript_expression "out[x + 3]" identifier [ (binary_expression "x + 3" identifier + number_literal) ]) = (binary_expression "__ptr[x + 3] ^ __ptr_00[x + 3]" (subscript_expression "__ptr[x + 3]" identifier [ (binary_expression "x + 3" identifier + number_literal) ]) ^ (subscript_expression "__ptr_00[x + 3]" identifier [ (binary_expression "x + 3" identifier + number_literal) ]))) ;) (expression_statement "out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4];" (assignment_expression "out[x + 4] = __ptr[x + 4] ^ __ptr_00[x + 4]" (subscript_expression "out[x + 4]" identifier [ (binary_expression "x + 4" identifier + number_literal) ]) = (binary_expression "__ptr[x + 4] ^ __ptr_00[x + 4]" (subscript_expression "__ptr[x + 4]" identifier [ (binary_expression "x + 4" identifier + number_literal) ]) ^ (subscript_expression "__ptr_00[x + 4]" identifier [ (binary_expression "x + 4" identifier + number_literal) ]))) ;) (expression_statement "out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5];" (assignment_expression "out[x + 5] = __ptr[x + 5] ^ __ptr_00[x + 5]" (subscript_expression "out[x + 5]" identifier [ (binary_expression "x + 5" identifier + number_literal) ]) = (binary_expression "__ptr[x + 5] ^ __ptr_00[x + 5]" (subscript_expression "__ptr[x + 5]" identifier [ (binary_expression "x + 5" identifier + number_literal) ]) ^ (subscript_expression "__ptr_00[x + 5]" identifier [ (binary_expression "x + 5" identifier + number_literal) ]))) ;) (expression_statement "out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6];" (assignment_expression "out[x + 6] = __ptr[x + 6] ^ __ptr_00[x + 6]" (subscript_expression "out[x + 6]" identifier [ (binary_expression "x + 6" identifier + number_literal) ]) = (binary_expression "__ptr[x + 6] ^ __ptr_00[x + 6]" (subscript_expression "__ptr[x + 6]" identifier [ (binary_expression "x + 6" identifier + number_literal) ]) ^ (subscript_expression "__ptr_00[x + 6]" identifier [ (binary_expression "x + 6" identifier + number_literal) ]))) ;) (expression_statement "out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7];" (assignment_expression "out[x + 7] = __ptr[x + 7] ^ __ptr_00[x + 7]" (subscript_expression "out[x + 7]" identifier [ (binary_expression "x + 7" identifier + number_literal) ]) = (binary_expression "__ptr[x + 7] ^ __ptr_00[x + 7]" (subscript_expression "__ptr[x + 7]" identifier [ (binary_expression "x + 7" identifier + number_literal) ]) ^ (subscript_expression "__ptr_00[x + 7]" identifier [ (binary_expression "x + 7" identifier + number_literal) ]))) ;) })) })) (expression_statement "*outlen = x;" (assignment_expression "*outlen = x" (pointer_expression "*outlen" * identifier) = identifier) ;) }))))) })) })) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "(*_free)(g_pub);" (call_expression "(*_free)(g_pub)" (parenthesized_expression "(*_free)" ( (pointer_expression "*_free" * identifier) )) (argument_list "(g_pub)" ( identifier ))) ;) }))) })) }) (else_clause "else {\n      iVar2 = 7;\n    }" else (compound_statement "{\n      iVar2 = 7;\n    }" { (expression_statement "iVar2 = 7;" (assignment_expression "iVar2 = 7" identifier = number_literal) ;) }))) })) (labeled_statement "LAB_0010006a:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *extraout_RDX;\n  byte *extraout_RDX_00;\n  ulong *puVar8;\n  byte *extraout_RDX_01;\n  char *pcVar9;\n  ulong *puVar10;\n  undefined8 *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  ulong *puVar14;\n  ulong *puVar15;\n  undefined8 *puVar16;\n  ulong *puVar17;\n  ulong *unaff_RBP;\n  undefined8 *puVar18;\n  byte bVar19;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  ulong auStack_2c0 [12];\n  undefined4 auStack_25c [3];\n  undefined8 local_250;\n  undefined1 local_248 [32];\n  undefined4 auStack_228 [2];\n  ulong auStack_220 [2];\n  undefined4 auStack_210 [2];\n  ulong local_208 [2];\n  undefined4 local_1f8 [8];\n  ulong local_1d8;\n  undefined4 auStack_1d0 [2];\n  ulong auStack_1c8 [2];\n  undefined4 local_1b8 [28];\n  undefined8 local_148 [33];\n  undefined8 local_40;\n  ulong *puVar20;\n  \n  puVar11 = (undefined8 *)local_248;\n  puVar12 = local_248;\n  puVar13 = local_248;\n  puVar10 = (ulong *)local_248;\n  puVar14 = (ulong *)local_248;\n  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);\n  puVar18 = local_148;\n  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }\n  if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }\n  *(undefined4 *)(puVar14 + 8) = 7;\n  puVar14[9] = (ulong)(puVar14 + 0x20);\n  puVar14[10] = 0x20;\n  *(undefined4 *)(puVar14 + 0xb) = 0;\n  puVar14[-1] = 0x100133;\n  puVar14[-2] = 0x100154;\n  *(undefined4 *)((long)puVar14 + 0xc) = 0;\n  puVar10 = puVar14 + -3;\n  puVar14[-3] = 0x10015f;\n  puVar14[-4] = 0x100172;\n  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);\n  pcVar9 = (char *)(ulong)uVar2;\n  pbVar7 = extraout_RDX;\n  if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }\nLAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n  *(undefined8 *)((long)puVar10 + -8) = 0x100513;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pbVar7;\n  iVar3 = (uint)pcVar9 + 0x42000000;\n  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);\n  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n                    \n  halt_baddata();\n}\n\n" (function_definition "void FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *extraout_RDX;\n  byte *extraout_RDX_00;\n  ulong *puVar8;\n  byte *extraout_RDX_01;\n  char *pcVar9;\n  ulong *puVar10;\n  undefined8 *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  ulong *puVar14;\n  ulong *puVar15;\n  undefined8 *puVar16;\n  ulong *puVar17;\n  ulong *unaff_RBP;\n  undefined8 *puVar18;\n  byte bVar19;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  ulong auStack_2c0 [12];\n  undefined4 auStack_25c [3];\n  undefined8 local_250;\n  undefined1 local_248 [32];\n  undefined4 auStack_228 [2];\n  ulong auStack_220 [2];\n  undefined4 auStack_210 [2];\n  ulong local_208 [2];\n  undefined4 local_1f8 [8];\n  ulong local_1d8;\n  undefined4 auStack_1d0 [2];\n  ulong auStack_1c8 [2];\n  undefined4 local_1b8 [28];\n  undefined8 local_148 [33];\n  undefined8 local_40;\n  ulong *puVar20;\n  \n  puVar11 = (undefined8 *)local_248;\n  puVar12 = local_248;\n  puVar13 = local_248;\n  puVar10 = (ulong *)local_248;\n  puVar14 = (ulong *)local_248;\n  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);\n  puVar18 = local_148;\n  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }\n  if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }\n  *(undefined4 *)(puVar14 + 8) = 7;\n  puVar14[9] = (ulong)(puVar14 + 0x20);\n  puVar14[10] = 0x20;\n  *(undefined4 *)(puVar14 + 0xb) = 0;\n  puVar14[-1] = 0x100133;\n  puVar14[-2] = 0x100154;\n  *(undefined4 *)((long)puVar14 + 0xc) = 0;\n  puVar10 = puVar14 + -3;\n  puVar14[-3] = 0x10015f;\n  puVar14[-4] = 0x100172;\n  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);\n  pcVar9 = (char *)(ulong)uVar2;\n  pbVar7 = extraout_RDX;\n  if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }\nLAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n  *(undefined8 *)((long)puVar10 + -8) = 0x100513;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pbVar7;\n  iVar3 = (uint)pcVar9 + 0x42000000;\n  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);\n  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n                    \n  halt_baddata();\n}" primitive_type (function_declarator "FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)" identifier (parameter_list "(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "ulong *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *extraout_RDX;\n  byte *extraout_RDX_00;\n  ulong *puVar8;\n  byte *extraout_RDX_01;\n  char *pcVar9;\n  ulong *puVar10;\n  undefined8 *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  ulong *puVar14;\n  ulong *puVar15;\n  undefined8 *puVar16;\n  ulong *puVar17;\n  ulong *unaff_RBP;\n  undefined8 *puVar18;\n  byte bVar19;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  ulong auStack_2c0 [12];\n  undefined4 auStack_25c [3];\n  undefined8 local_250;\n  undefined1 local_248 [32];\n  undefined4 auStack_228 [2];\n  ulong auStack_220 [2];\n  undefined4 auStack_210 [2];\n  ulong local_208 [2];\n  undefined4 local_1f8 [8];\n  ulong local_1d8;\n  undefined4 auStack_1d0 [2];\n  ulong auStack_1c8 [2];\n  undefined4 local_1b8 [28];\n  undefined8 local_148 [33];\n  undefined8 local_40;\n  ulong *puVar20;\n  \n  puVar11 = (undefined8 *)local_248;\n  puVar12 = local_248;\n  puVar13 = local_248;\n  puVar10 = (ulong *)local_248;\n  puVar14 = (ulong *)local_248;\n  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);\n  puVar18 = local_148;\n  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }\n  if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }\n  *(undefined4 *)(puVar14 + 8) = 7;\n  puVar14[9] = (ulong)(puVar14 + 0x20);\n  puVar14[10] = 0x20;\n  *(undefined4 *)(puVar14 + 0xb) = 0;\n  puVar14[-1] = 0x100133;\n  puVar14[-2] = 0x100154;\n  *(undefined4 *)((long)puVar14 + 0xc) = 0;\n  puVar10 = puVar14 + -3;\n  puVar14[-3] = 0x10015f;\n  puVar14[-4] = 0x100172;\n  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);\n  pcVar9 = (char *)(ulong)uVar2;\n  pbVar7 = extraout_RDX;\n  if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }\nLAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n  *(undefined8 *)((long)puVar10 + -8) = 0x100513;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pbVar7;\n  iVar3 = (uint)pcVar9 + 0x42000000;\n  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);\n  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n                    \n  halt_baddata();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *extraout_RDX;" type_identifier (pointer_declarator "*extraout_RDX" * identifier) ;) (declaration "byte *extraout_RDX_00;" type_identifier (pointer_declarator "*extraout_RDX_00" * identifier) ;) (declaration "ulong *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "byte *extraout_RDX_01;" type_identifier (pointer_declarator "*extraout_RDX_01" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "ulong *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "ulong *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "ulong *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined8 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "ulong *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "ulong *unaff_RBP;" type_identifier (pointer_declarator "*unaff_RBP" * identifier) ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "ulong unaff_R15;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong auStack_2c0 [12];" type_identifier (array_declarator "auStack_2c0 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_25c [3];" type_identifier (array_declarator "auStack_25c [3]" identifier [ number_literal ]) ;) (declaration "undefined8 local_250;" type_identifier identifier ;) (declaration "undefined1 local_248 [32];" type_identifier (array_declarator "local_248 [32]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_228 [2];" type_identifier (array_declarator "auStack_228 [2]" identifier [ number_literal ]) ;) (declaration "ulong auStack_220 [2];" type_identifier (array_declarator "auStack_220 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_210 [2];" type_identifier (array_declarator "auStack_210 [2]" identifier [ number_literal ]) ;) (declaration "ulong local_208 [2];" type_identifier (array_declarator "local_208 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_1f8 [8];" type_identifier (array_declarator "local_1f8 [8]" identifier [ number_literal ]) ;) (declaration "ulong local_1d8;" type_identifier identifier ;) (declaration "undefined4 auStack_1d0 [2];" type_identifier (array_declarator "auStack_1d0 [2]" identifier [ number_literal ]) ;) (declaration "ulong auStack_1c8 [2];" type_identifier (array_declarator "auStack_1c8 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_1b8 [28];" type_identifier (array_declarator "local_1b8 [28]" identifier [ number_literal ]) ;) (declaration "undefined8 local_148 [33];" type_identifier (array_declarator "local_148 [33]" identifier [ number_literal ]) ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (declaration "ulong *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (expression_statement "puVar11 = (undefined8 *)local_248;" (assignment_expression "puVar11 = (undefined8 *)local_248" identifier = (cast_expression "(undefined8 *)local_248" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar12 = local_248;" (assignment_expression "puVar12 = local_248" identifier = identifier) ;) (expression_statement "puVar13 = local_248;" (assignment_expression "puVar13 = local_248" identifier = identifier) ;) (expression_statement "puVar10 = (ulong *)local_248;" (assignment_expression "puVar10 = (ulong *)local_248" identifier = (cast_expression "(ulong *)local_248" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar14 = (ulong *)local_248;" (assignment_expression "puVar14 = (ulong *)local_248" identifier = (cast_expression "(ulong *)local_248" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(undefined8 *)(in_FS_OFFSET + 0x28)" * (cast_expression "(undefined8 *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar18 = local_148;" (assignment_expression "puVar18 = local_148" identifier = identifier) ;) (for_statement "for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }" for ( (assignment_expression "lVar5 = 0x20" identifier = number_literal) ; (binary_expression "lVar5 != 0" identifier != number_literal) ; (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }" { (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) })) (if_statement "if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }" { (expression_statement "puVar11 = &local_250;" (assignment_expression "puVar11 = &local_250" identifier = (pointer_expression "&local_250" & identifier)) ;) (expression_statement "local_250 = 0x1000ad;" (assignment_expression "local_250 = 0x1000ad" identifier = number_literal) ;) (labeled_statement "LAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);" statement_identifier : (expression_statement "puVar12 = (undefined1 *)((long)puVar11 + -8);" (assignment_expression "puVar12 = (undefined1 *)((long)puVar11 + -8)" identifier = (cast_expression "(undefined1 *)((long)puVar11 + -8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar11 + -8)" ( (binary_expression "(long)puVar11 + -8" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;)) (expression_statement "*(undefined8 *)((long)puVar11 + -8) = 0x1000c5;" (assignment_expression "*(undefined8 *)((long)puVar11 + -8) = 0x1000c5" (pointer_expression "*(undefined8 *)((long)puVar11 + -8)" * (cast_expression "(undefined8 *)((long)puVar11 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar11 + -8)" ( (binary_expression "(long)puVar11 + -8" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_001000c5:\n    puVar13 = puVar12 + -8;" statement_identifier : (expression_statement "puVar13 = puVar12 + -8;" (assignment_expression "puVar13 = puVar12 + -8" identifier = (binary_expression "puVar12 + -8" identifier + number_literal)) ;)) (expression_statement "*(undefined8 *)(puVar12 + -8) = 0x1000dd;" (assignment_expression "*(undefined8 *)(puVar12 + -8) = 0x1000dd" (pointer_expression "*(undefined8 *)(puVar12 + -8)" * (cast_expression "(undefined8 *)(puVar12 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);" statement_identifier : (expression_statement "puVar14 = (ulong *)(puVar13 + -8);" (assignment_expression "puVar14 = (ulong *)(puVar13 + -8)" identifier = (cast_expression "(ulong *)(puVar13 + -8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) ;)) (expression_statement "*(undefined8 *)(puVar13 + -8) = 0x1000f5;" (assignment_expression "*(undefined8 *)(puVar13 + -8) = 0x1000f5" (pointer_expression "*(undefined8 *)(puVar13 + -8)" * (cast_expression "(undefined8 *)(puVar13 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" else (compound_statement "{\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" { (expression_statement "unaff_RBP = param_5;" (assignment_expression "unaff_RBP = param_5" identifier = identifier) ;) (expression_statement "unaff_R15 = param_2;" (assignment_expression "unaff_R15 = param_2" identifier = identifier) ;) (if_statement "if (param_3 == (byte *)0x0) goto LAB_001000ad;" if (parenthesized_expression "(param_3 == (byte *)0x0)" ( (binary_expression "param_3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001000ad;" goto statement_identifier ;)) (if_statement "if (param_4 == (long *)0x0) goto LAB_001000c5;" if (parenthesized_expression "(param_4 == (long *)0x0)" ( (binary_expression "param_4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001000c5;" goto statement_identifier ;)) (if_statement "if (param_5 == (ulong *)0x0) goto LAB_001000dd;" if (parenthesized_expression "(param_5 == (ulong *)0x0)" ( (binary_expression "param_5 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001000dd;" goto statement_identifier ;)) (expression_statement "pcVar9 = (char *)0xf;" (assignment_expression "pcVar9 = (char *)0xf" identifier = (cast_expression "(char *)0xf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar7 = param_3;" (assignment_expression "pbVar7 = param_3" identifier = identifier) ;) (if_statement "if ((int)*param_5 != 1) goto LAB_0010006a;" if (parenthesized_expression "((int)*param_5 != 1)" ( (binary_expression "(int)*param_5 != 1" (cast_expression "(int)*param_5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_5" * identifier)) != number_literal) )) (goto_statement "goto LAB_0010006a;" goto statement_identifier ;)) }))) (expression_statement "*(undefined4 *)(puVar14 + 8) = 7;" (assignment_expression "*(undefined4 *)(puVar14 + 8) = 7" (pointer_expression "*(undefined4 *)(puVar14 + 8)" * (cast_expression "(undefined4 *)(puVar14 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 8)" ( (binary_expression "puVar14 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[9] = (ulong)(puVar14 + 0x20);" (assignment_expression "puVar14[9] = (ulong)(puVar14 + 0x20)" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = (call_expression "(ulong)(puVar14 + 0x20)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar14 + 0x20)" ( (binary_expression "puVar14 + 0x20" identifier + number_literal) )))) ;) (expression_statement "puVar14[10] = 0x20;" (assignment_expression "puVar14[10] = 0x20" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0xb) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" * (cast_expression "(undefined4 *)(puVar14 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xb)" ( (binary_expression "puVar14 + 0xb" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[-1] = 0x100133;" (assignment_expression "puVar14[-1] = 0x100133" (subscript_expression "puVar14[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[-2] = 0x100154;" (assignment_expression "puVar14[-2] = 0x100154" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar14 + 0xc) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 0xc) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 0xc)" * (cast_expression "(undefined4 *)((long)puVar14 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0xc)" ( (binary_expression "(long)puVar14 + 0xc" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar10 = puVar14 + -3;" (assignment_expression "puVar10 = puVar14 + -3" identifier = (binary_expression "puVar14 + -3" identifier + number_literal)) ;) (expression_statement "puVar14[-3] = 0x10015f;" (assignment_expression "puVar14[-3] = 0x10015f" (subscript_expression "puVar14[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[-4] = 0x100172;" (assignment_expression "puVar14[-4] = 0x100172" (subscript_expression "puVar14[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);" (assignment_expression "uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" identifier = (call_expression "(*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" (parenthesized_expression "(*pcRam0000000000100172)" ( (pointer_expression "*pcRam0000000000100172" * identifier) )) (argument_list "(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" ( (binary_expression "puVar14 + 2" identifier + number_literal) , (subscript_expression "puVar14[9]" identifier [ number_literal ]) , (binary_expression "puVar14 + 8" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = (char *)(ulong)uVar2;" (assignment_expression "pcVar9 = (char *)(ulong)uVar2" identifier = (cast_expression "(char *)(ulong)uVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "pbVar7 = extraout_RDX;" (assignment_expression "pbVar7 = extraout_RDX" identifier = identifier) ;) (if_statement "if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }" { (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" identifier = (subscript_expression "unaff_RBP[3]" identifier [ number_literal ])) ;) (expression_statement "puVar14[-4] = 0x100186;" (assignment_expression "puVar14[-4] = 0x100186" (subscript_expression "puVar14[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = (*pcRam0000000000100186)(uVar4);" (assignment_expression "uVar4 = (*pcRam0000000000100186)(uVar4)" identifier = (call_expression "(*pcRam0000000000100186)(uVar4)" (parenthesized_expression "(*pcRam0000000000100186)" ( (pointer_expression "*pcRam0000000000100186" * identifier) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "puVar14[-4] = 0x10018f;" (assignment_expression "puVar14[-4] = 0x10018f" (subscript_expression "puVar14[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[-2] = uVar4;" (assignment_expression "puVar14[-2] = uVar4" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = puVar14 + -5;" (assignment_expression "puVar10 = puVar14 + -5" identifier = (binary_expression "puVar14 + -5" identifier + number_literal)) ;) (expression_statement "puVar14[-5] = 0x1001a1;" (assignment_expression "puVar14[-5] = 0x1001a1" (subscript_expression "puVar14[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[-4] = uVar4;" (assignment_expression "puVar14[-4] = uVar4" (subscript_expression "puVar14[-4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" if (parenthesized_expression "((uVar4 == 0) || (uVar4 == 0))" ( (binary_expression "(uVar4 == 0) || (uVar4 == 0)" (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }" { (if_statement "if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }" if (parenthesized_expression "(puVar14[-3] != 0)" ( (binary_expression "puVar14[-3] != 0" (subscript_expression "puVar14[-3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }" { (expression_statement "puVar10 = puVar14 + -6;" (assignment_expression "puVar10 = puVar14 + -6" identifier = (binary_expression "puVar14 + -6" identifier + number_literal)) ;) (expression_statement "puVar14[-6] = 0x1002f3;" (assignment_expression "puVar14[-6] = 0x1002f3" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }" if (parenthesized_expression "(*(long *)((long)puVar10 + 8) != 0)" ( (binary_expression "*(long *)((long)puVar10 + 8) != 0" (pointer_expression "*(long *)((long)puVar10 + 8)" * (cast_expression "(long *)((long)puVar10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 8)" ( (binary_expression "(long)puVar10 + 8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }" { (expression_statement "puVar16 = (undefined8 *)((long)puVar10 + -8);" (assignment_expression "puVar16 = (undefined8 *)((long)puVar10 + -8)" identifier = (cast_expression "(undefined8 *)((long)puVar10 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + -8)" ( (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puVar10 = (ulong *)((long)puVar10 + -8);" (assignment_expression "puVar10 = (ulong *)((long)puVar10 + -8)" identifier = (cast_expression "(ulong *)((long)puVar10 + -8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + -8)" ( (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar16 = 0x100305;" (assignment_expression "*puVar16 = 0x100305" (pointer_expression "*puVar16" * identifier) = number_literal) ;) })) (expression_statement "*(undefined8 *)((long)puVar10 + -8) = 0x100310;" (assignment_expression "*(undefined8 *)((long)puVar10 + -8) = 0x100310" (pointer_expression "*(undefined8 *)((long)puVar10 + -8)" * (cast_expression "(undefined8 *)((long)puVar10 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + -8)" ( (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcRam0000000000100310)();" (call_expression "(*pcRam0000000000100310)()" (parenthesized_expression "(*pcRam0000000000100310)" ( (pointer_expression "*pcRam0000000000100310" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar9 = (char *)0xd;" (assignment_expression "pcVar9 = (char *)0xd" identifier = (cast_expression "(char *)0xd" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar7 = extraout_RDX_00;" (assignment_expression "pbVar7 = extraout_RDX_00" identifier = identifier) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" { (expression_statement "*(undefined4 *)(puVar14 + 0xb) = 2;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = 2" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" * (cast_expression "(undefined4 *)(puVar14 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xb)" ( (binary_expression "puVar14 + 0xb" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0xc] = *puVar14;" (assignment_expression "puVar14[0xc] = *puVar14" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14[0xd] = 1;" (assignment_expression "puVar14[0xd] = 1" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0xe) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0xe) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0xe)" * (cast_expression "(undefined4 *)(puVar14 + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xe)" ( (binary_expression "puVar14 + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x13) = 5;" (assignment_expression "*(undefined4 *)(puVar14 + 0x13) = 5" (pointer_expression "*(undefined4 *)(puVar14 + 0x13)" * (cast_expression "(undefined4 *)(puVar14 + 0x13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x13)" ( (binary_expression "puVar14 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0x14] = puVar14[-4];" (assignment_expression "puVar14[0x14] = puVar14[-4]" (subscript_expression "puVar14[0x14]" identifier [ number_literal ]) = (subscript_expression "puVar14[-4]" identifier [ number_literal ])) ;) (expression_statement "puVar14[0x15] = 0x80;" (assignment_expression "puVar14[0x15] = 0x80" (subscript_expression "puVar14[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x16) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0x16) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0x16)" * (cast_expression "(undefined4 *)(puVar14 + 0x16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x16)" ( (binary_expression "puVar14 + 0x16" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = 3;" (assignment_expression "uVar6 = 3" identifier = number_literal) ;) (expression_statement "puVar14[-6] = 0x100231;" (assignment_expression "puVar14[-6] = 0x100231" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" identifier = (cast_expression "(char *)(uVar4 & 0xffffffff)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "puVar8 = puVar14 + 3;" (assignment_expression "puVar8 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar14 + -6;" (assignment_expression "puVar17 = puVar14 + -6" identifier = (binary_expression "puVar14 + -6" identifier + number_literal)) ;) (expression_statement "puVar20 = (ulong *)(undefined1 *)0x1;" (assignment_expression "puVar20 = (ulong *)(undefined1 *)0x1" identifier = (cast_expression "(ulong *)(undefined1 *)0x1" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }" { (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" identifier = (subscript_expression "unaff_RBP[3]" identifier [ number_literal ])) ;) (expression_statement "puVar14[-7] = 0x100245;" (assignment_expression "puVar14[-7] = 0x100245" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);" (assignment_expression "lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1)" identifier = (call_expression "(*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1)" (parenthesized_expression "(*pcRam0000000000100245)" ( (pointer_expression "*pcRam0000000000100245" * identifier) )) (argument_list "(uVar4,unaff_R15,puVar14 + 3,3,1)" ( identifier , identifier , (binary_expression "puVar14 + 3" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "uVar4 = lVar5 + 1;" (assignment_expression "uVar4 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "uVar6 = puVar14[-4];" (assignment_expression "uVar6 = puVar14[-4]" identifier = (subscript_expression "puVar14[-4]" identifier [ number_literal ])) ;) (expression_statement "puVar14[-7] = 0x10026c;" (assignment_expression "puVar14[-7] = 0x10026c" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" identifier = (cast_expression "(char *)(uVar4 & 0xffffffff)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "puVar8 = unaff_RBP;" (assignment_expression "puVar8 = unaff_RBP" identifier = identifier) ;) (expression_statement "puVar17 = puVar14 + -7;" (assignment_expression "puVar17 = puVar14 + -7" identifier = (binary_expression "puVar14 + -7" identifier + number_literal)) ;) (expression_statement "unaff_R15 = puVar14[-1];" (assignment_expression "unaff_R15 = puVar14[-1]" identifier = (subscript_expression "puVar14[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = puVar14;" (assignment_expression "puVar20 = puVar14" identifier = identifier) ;) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }" { (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" identifier = (subscript_expression "unaff_RBP[3]" identifier [ number_literal ])) ;) (expression_statement "puVar14[-8] = 0x100280;" (assignment_expression "puVar14[-8] = 0x100280" (subscript_expression "puVar14[-8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);" (assignment_expression "lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" identifier = (call_expression "(*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" (parenthesized_expression "(*pcRam0000000000100280)" ( (pointer_expression "*pcRam0000000000100280" * identifier) )) (argument_list "(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" ( identifier , (subscript_expression "puVar14[-1]" identifier [ number_literal ]) , identifier , identifier , identifier )))) ;) (expression_statement "uVar4 = lVar5 + 1;" (assignment_expression "uVar4 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) (if_statement "if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }" if (parenthesized_expression "(0x80 < uVar4)" ( (binary_expression "0x80 < uVar4" number_literal < identifier) )) (compound_statement "{\n            uVar4 = 0x80;\n          }" { (expression_statement "uVar4 = 0x80;" (assignment_expression "uVar4 = 0x80" identifier = number_literal) ;) })) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "puVar8 = (ulong *)puVar14[-1];" (assignment_expression "puVar8 = (ulong *)puVar14[-1]" identifier = (cast_expression "(ulong *)puVar14[-1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-1]" identifier [ number_literal ]))) ;) (expression_statement "puVar15 = puVar14 + -8;" (assignment_expression "puVar15 = puVar14 + -8" identifier = (binary_expression "puVar14 + -8" identifier + number_literal)) ;) (expression_statement "puVar14[-8] = 0x1002b2;" (assignment_expression "puVar14[-8] = 0x1002b2" (subscript_expression "puVar14[-8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" identifier = (cast_expression "(char *)(uVar4 & 0xffffffff)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" identifier = (binary_expression "puVar14 + -8" identifier + number_literal)) ;) (expression_statement "unaff_R15 = uVar6;" (assignment_expression "unaff_R15 = uVar6" identifier = identifier) ;) (if_statement "if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }" { (expression_statement "puVar17 = (ulong *)puVar14[0x12];" (assignment_expression "puVar17 = (ulong *)puVar14[0x12]" identifier = (cast_expression "(ulong *)puVar14[0x12]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[0x12]" identifier [ number_literal ]))) ;) (if_statement "if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" if (parenthesized_expression "((ulong *)puVar14[-1] < puVar17)" ( (binary_expression "(ulong *)puVar14[-1] < puVar17" (cast_expression "(ulong *)puVar14[-1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-1]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }" { (expression_statement "pcVar9 = (char *)0x7;" (assignment_expression "pcVar9 = (char *)0x7" identifier = (cast_expression "(char *)0x7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" identifier = (binary_expression "puVar14 + -8" identifier + number_literal)) ;) }) (else_clause "else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" else (if_statement "if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" if (parenthesized_expression "((ulong *)*param_4 < puVar17)" ( (binary_expression "(ulong *)*param_4 < puVar17" (cast_expression "(ulong *)*param_4" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) < identifier) )) (compound_statement "{\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }" { (expression_statement "*param_4 = (long)puVar17;" (assignment_expression "*param_4 = (long)puVar17" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "pcVar9 = (char *)0x6;" (assignment_expression "pcVar9 = (char *)0x6" identifier = (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" identifier = (binary_expression "puVar14 + -8" identifier + number_literal)) ;) }) (else_clause "else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" else (compound_statement "{\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" { (expression_statement "puVar14[-2] = 0;" (assignment_expression "puVar14[-2] = 0" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" if (parenthesized_expression "(puVar17 == (ulong *)0x0)" ( (binary_expression "puVar17 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar8 = (ulong *)0x0;\n              }" { (expression_statement "puVar8 = (ulong *)0x0;" (assignment_expression "puVar8 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" else (compound_statement "{\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" { (expression_statement "puVar8 = (ulong *)0x0;" (assignment_expression "puVar8 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar2 = (uint)puVar17 & 7;" (assignment_expression "uVar2 = (uint)puVar17 & 7" identifier = (binary_expression "(uint)puVar17 & 7" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;" if (parenthesized_expression "(((ulong)puVar17 & 7) == 0)" ( (binary_expression "((ulong)puVar17 & 7) == 0" (parenthesized_expression "((ulong)puVar17 & 7)" ( (binary_expression "(ulong)puVar17 & 7" (cast_expression "(ulong)puVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00100435;" goto statement_identifier ;)) (if_statement "if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }" if (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) (compound_statement "{\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }" { (if_statement "if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }" { (if_statement "if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }" if (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) )) (compound_statement "{\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }" { (if_statement "if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }" if (parenthesized_expression "(uVar2 != 4)" ( (binary_expression "uVar2 != 4" identifier != number_literal) )) (compound_statement "{\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }" { (if_statement "if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }" if (parenthesized_expression "(uVar2 != 5)" ( (binary_expression "uVar2 != 5" identifier != number_literal) )) (compound_statement "{\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }" { (if_statement "if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }" if (parenthesized_expression "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )) (compound_statement "{\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }" { (expression_statement "*param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];" (assignment_expression "*param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7]" (pointer_expression "*param_3" * identifier) = (binary_expression "*(byte *)puVar14[-6] ^ *(byte *)puVar14[-7]" (pointer_expression "*(byte *)puVar14[-6]" * (cast_expression "(byte *)puVar14[-6]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-6]" identifier [ number_literal ]))) ^ (pointer_expression "*(byte *)puVar14[-7]" * (cast_expression "(byte *)puVar14[-7]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-7]" identifier [ number_literal ]))))) ;) })) (expression_statement "uVar4 = (ulong)(uVar2 != 6);" (assignment_expression "uVar4 = (ulong)(uVar2 != 6)" identifier = (call_expression "(ulong)(uVar2 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )))) ;) (expression_statement "param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);" (assignment_expression "param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4)" (subscript_expression "param_3[uVar4]" identifier [ identifier ]) = (binary_expression "*(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4)" (pointer_expression "*(byte *)(puVar14[-6] + uVar4)" * (cast_expression "(byte *)(puVar14[-6] + uVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + uVar4)" ( (binary_expression "puVar14[-6] + uVar4" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + identifier) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + uVar4)" * (cast_expression "(byte *)(puVar14[-7] + uVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + uVar4)" ( (binary_expression "puVar14[-7] + uVar4" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + identifier) )))))) ;) (expression_statement "puVar8 = (ulong *)(uVar4 + 1);" (assignment_expression "puVar8 = (ulong *)(uVar4 + 1)" identifier = (cast_expression "(ulong *)(uVar4 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + 1)" ( (binary_expression "uVar4 + 1" identifier + number_literal) )))) ;) })) (expression_statement "param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + (long)puVar8)" ( (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + (long)puVar8)" ( (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "uVar6 = puVar14[-7];" (assignment_expression "uVar6 = puVar14[-7]" identifier = (subscript_expression "puVar14[-7]" identifier [ number_literal ])) ;) (expression_statement "param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + (long)puVar8)" ( (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(uVar6 + (long)puVar8)" * (cast_expression "(byte *)(uVar6 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + (long)puVar8)" ( (binary_expression "uVar6 + (long)puVar8" identifier + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + (long)puVar8)" ( (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + (long)puVar8)" ( (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "unaff_R15 = puVar14[-6];" (assignment_expression "unaff_R15 = puVar14[-6]" identifier = (subscript_expression "puVar14[-6]" identifier [ number_literal ])) ;) (expression_statement "bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8)" identifier = (binary_expression "*(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(unaff_R15 + (long)puVar8)" * (cast_expression "(byte *)(unaff_R15 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R15 + (long)puVar8)" ( (binary_expression "unaff_R15 + (long)puVar8" identifier + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + (long)puVar8)" ( (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "puVar20 = (ulong *)(ulong)bVar19;" (assignment_expression "puVar20 = (ulong *)(ulong)bVar19" identifier = (cast_expression "(ulong *)(ulong)bVar19" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "param_3[(long)puVar8] = bVar19;" (assignment_expression "param_3[(long)puVar8] = bVar19" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = identifier) ;) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-6] + (long)puVar8)" ( (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" * (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14[-7] + (long)puVar8)" ( (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" identifier [ number_literal ]) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (for_statement "for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }" for ( (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ; (binary_expression "puVar17 != puVar8" identifier != identifier) ; (assignment_expression "puVar8 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ) (compound_statement "{\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }" { (labeled_statement "LAB_00100435:\n                  uVar4 = puVar14[-6];" statement_identifier : (expression_statement "uVar4 = puVar14[-6];" (assignment_expression "uVar4 = puVar14[-6]" identifier = (subscript_expression "puVar14[-6]" identifier [ number_literal ])) ;)) (expression_statement "lVar5 = puVar14[-7];" (assignment_expression "lVar5 = puVar14[-7]" identifier = (subscript_expression "puVar14[-7]" identifier [ number_literal ])) ;) (expression_statement "bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);" (assignment_expression "bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8)" identifier = (binary_expression "*(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8)" (pointer_expression "*(byte *)(uVar4 + (long)puVar8)" * (cast_expression "(byte *)(uVar4 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + (long)puVar8)" ( (binary_expression "uVar4 + (long)puVar8" identifier + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(lVar5 + (long)puVar8)" * (cast_expression "(byte *)(lVar5 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + (long)puVar8)" ( (binary_expression "lVar5 + (long)puVar8" identifier + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "uVar6 = (ulong)bVar19;" (assignment_expression "uVar6 = (ulong)bVar19" identifier = (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "param_3[(long)puVar8] = bVar19;" (assignment_expression "param_3[(long)puVar8] = bVar19" (subscript_expression "param_3[(long)puVar8]" identifier [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = identifier) ;) (expression_statement "puVar20 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar20 = (ulong *)((long)puVar8 + 1)" identifier = (cast_expression "(ulong *)((long)puVar8 + 1)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 1)" ( (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;" (assignment_expression "bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)" identifier = (binary_expression "*(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)" (pointer_expression "*(byte *)(uVar4 + 1 + (long)puVar8)" * (cast_expression "(byte *)(uVar4 + 1 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + 1 + (long)puVar8)" ( (binary_expression "uVar4 + 1 + (long)puVar8" (binary_expression "uVar4 + 1" identifier + number_literal) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ^ (pointer_expression "*(byte *)(lVar5 + 1 + (long)puVar8)" * (cast_expression "(byte *)(lVar5 + 1 + (long)puVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 1 + (long)puVar8)" ( (binary_expression "lVar5 + 1 + (long)puVar8" (binary_expression "lVar5 + 1" identifier + number_literal) + (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))))) ;) (expression_statement "unaff_R15 = (ulong)bVar19;" (assignment_expression "unaff_R15 = (ulong)bVar19" identifier = (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "(param_3 + 1)[(long)puVar8] = bVar19;" (assignment_expression "(param_3 + 1)[(long)puVar8] = bVar19" (subscript_expression "(param_3 + 1)[(long)puVar8]" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) [ (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = identifier) ;) (expression_statement "(param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);" (assignment_expression "(param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1)" (subscript_expression "(param_3 + 1)[(long)puVar20]" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 1)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 1)" ( (binary_expression "(long)puVar20 + uVar4 + 1" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 1)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 1)" ( (binary_expression "(long)puVar20 + lVar5 + 1" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);" (assignment_expression "(param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2)" (subscript_expression "(param_3 + 2)[(long)puVar20]" (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 2)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 2)" ( (binary_expression "(long)puVar20 + uVar4 + 2" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 2)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 2)" ( (binary_expression "(long)puVar20 + lVar5 + 2" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);" (assignment_expression "(param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3)" (subscript_expression "(param_3 + 3)[(long)puVar20]" (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 3)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 3)" ( (binary_expression "(long)puVar20 + uVar4 + 3" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 3)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 3)" ( (binary_expression "(long)puVar20 + lVar5 + 3" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);" (assignment_expression "(param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4)" (subscript_expression "(param_3 + 4)[(long)puVar20]" (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 4)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 4)" ( (binary_expression "(long)puVar20 + uVar4 + 4" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 4)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 4)" ( (binary_expression "(long)puVar20 + lVar5 + 4" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);" (assignment_expression "(param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5)" (subscript_expression "(param_3 + 5)[(long)puVar20]" (parenthesized_expression "(param_3 + 5)" ( (binary_expression "param_3 + 5" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 5)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 5)" ( (binary_expression "(long)puVar20 + uVar4 + 5" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 5)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 5)" ( (binary_expression "(long)puVar20 + lVar5 + 5" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "(param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);" (assignment_expression "(param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6)" (subscript_expression "(param_3 + 6)[(long)puVar20]" (parenthesized_expression "(param_3 + 6)" ( (binary_expression "param_3 + 6" identifier + number_literal) )) [ (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) = (binary_expression "*(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 6)" * (cast_expression "(byte *)((long)puVar20 + uVar4 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + uVar4 + 6)" ( (binary_expression "(long)puVar20 + uVar4 + 6" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ^ (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 6)" * (cast_expression "(byte *)((long)puVar20 + lVar5 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar20 + lVar5 + 6)" ( (binary_expression "(long)puVar20 + lVar5 + 6" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) })) (expression_statement "puVar14[-2] = (ulong)puVar8;" (assignment_expression "puVar14[-2] = (ulong)puVar8" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = (cast_expression "(ulong)puVar8" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar14 = puVar20;" (assignment_expression "puVar14 = puVar20" identifier = identifier) ;) }))) (expression_statement "*param_4 = (long)puVar8;" (assignment_expression "*param_4 = (long)puVar8" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "puVar17 = puVar15;" (assignment_expression "puVar17 = puVar15" identifier = identifier) ;) (expression_statement "puVar20 = puVar14;" (assignment_expression "puVar20 = puVar14" identifier = identifier) ;) }))))) })) })) })) (expression_statement "*(undefined8 *)((long)puVar17 + -8) = 0x1004ea;" (assignment_expression "*(undefined8 *)((long)puVar17 + -8) = 0x1004ea" (pointer_expression "*(undefined8 *)((long)puVar17 + -8)" * (cast_expression "(undefined8 *)((long)puVar17 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -8)" ( (binary_expression "(long)puVar17 + -8" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar10 = (ulong *)((long)puVar17 + -0x10);" (assignment_expression "puVar10 = (ulong *)((long)puVar17 + -0x10)" identifier = (cast_expression "(ulong *)((long)puVar17 + -0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0x10)" ( (binary_expression "(long)puVar17 + -0x10" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;" (assignment_expression "*(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4" (pointer_expression "*(undefined8 *)((long)puVar17 + -0x10)" * (cast_expression "(undefined8 *)((long)puVar17 + -0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0x10)" ( (binary_expression "(long)puVar17 + -0x10" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;" (assignment_expression "*(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff" (pointer_expression "*(undefined8 *)((long)puVar17 + -0x18)" * (cast_expression "(undefined8 *)((long)puVar17 + -0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0x18)" ( (binary_expression "(long)puVar17 + -0x18" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;" (call_expression "(*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)" (parenthesized_expression "(*pcRam00000000001004ff)" ( (pointer_expression "*pcRam00000000001004ff" * identifier) )) (argument_list "(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)" ( (pointer_expression "*(undefined8 *)((long)puVar17 + 0x18)" * (cast_expression "(undefined8 *)((long)puVar17 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + 0x18)" ( (binary_expression "(long)puVar17 + 0x18" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "pbVar7 = extraout_RDX_01;" (assignment_expression "pbVar7 = extraout_RDX_01" identifier = identifier) ;) }))) })) (labeled_statement "LAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" statement_identifier : (if_statement "if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)" (pointer_expression "*(long *)((long)puVar10 + 0x208)" * (cast_expression "(long *)((long)puVar10 + 0x208)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0x208)" ( (binary_expression "(long)puVar10 + 0x208" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "*(undefined8 *)((long)puVar10 + -8) = 0x100513;" (assignment_expression "*(undefined8 *)((long)puVar10 + -8) = 0x100513" (pointer_expression "*(undefined8 *)((long)puVar10 + -8)" * (cast_expression "(undefined8 *)((long)puVar10 + -8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + -8)" ( (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*pcVar9 = *pcVar9 + (char)pcVar9;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" * identifier) + (cast_expression "(char)pcVar9" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*pcVar9 = *pcVar9 + (char)pcVar9;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" * identifier) + (cast_expression "(char)pcVar9" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*pcVar9 = *pcVar9 + (char)pbVar7;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pbVar7" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + (char)pbVar7" (pointer_expression "*pcVar9" * identifier) + (cast_expression "(char)pbVar7" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = (uint)pcVar9 + 0x42000000;" (assignment_expression "iVar3 = (uint)pcVar9 + 0x42000000" identifier = (binary_expression "(uint)pcVar9 + 0x42000000" (cast_expression "(uint)pcVar9" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);" (assignment_expression "cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9)" identifier = (binary_expression "(char)iVar3 - (0xbdffffff < (uint)pcVar9)" (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier) - (parenthesized_expression "(0xbdffffff < (uint)pcVar9)" ( (binary_expression "0xbdffffff < (uint)pcVar9" number_literal < (cast_expression "(uint)pcVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);" (assignment_expression "pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" identifier = (cast_expression "(char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" identifier (argument_list "((int3)((uint)iVar3 >> 8),cVar1)" ( (call_expression "(int3)((uint)iVar3 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar3 >> 8)" ( (binary_expression "(uint)iVar3 >> 8" (cast_expression "(uint)iVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier )))))) ;) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) + identifier)) ;) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) + identifier)) ;) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) = (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" * identifier) + identifier)) ;) (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) != LIT) )) (goto_statement goto 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 (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (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 ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (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 ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == 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 (pointer_expression * IDENT) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))))) ;) (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_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) )))) ^ (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) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_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) )))) ^ (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) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_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) )))) ^ (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) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_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) )))) ^ (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) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_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) )))) ^ (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) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ]) = (binary_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) )))) ^ (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) )))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) })) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT )))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *extraout_RDX;\n  byte *extraout_RDX_00;\n  ulong *puVar8;\n  byte *extraout_RDX_01;\n  char *pcVar9;\n  ulong *puVar10;\n  undefined8 *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  ulong *puVar14;\n  ulong *puVar15;\n  undefined8 *puVar16;\n  ulong *puVar17;\n  ulong *unaff_RBP;\n  undefined8 *puVar18;\n  byte bVar19;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  ulong auStack_2c0 [12];\n  undefined4 auStack_25c [3];\n  undefined8 local_250;\n  undefined1 local_248 [32];\n  undefined4 auStack_228 [2];\n  ulong auStack_220 [2];\n  undefined4 auStack_210 [2];\n  ulong local_208 [2];\n  undefined4 local_1f8 [8];\n  ulong local_1d8;\n  undefined4 auStack_1d0 [2];\n  ulong auStack_1c8 [2];\n  undefined4 local_1b8 [28];\n  undefined8 local_148 [33];\n  undefined8 local_40;\n  ulong *puVar20;\n  \n  puVar11 = (undefined8 *)local_248;\n  puVar12 = local_248;\n  puVar13 = local_248;\n  puVar10 = (ulong *)local_248;\n  puVar14 = (ulong *)local_248;\n  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);\n  puVar18 = local_148;\n  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }\n  if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }\n  *(undefined4 *)(puVar14 + 8) = 7;\n  puVar14[9] = (ulong)(puVar14 + 0x20);\n  puVar14[10] = 0x20;\n  *(undefined4 *)(puVar14 + 0xb) = 0;\n  puVar14[-1] = 0x100133;\n  puVar14[-2] = 0x100154;\n  *(undefined4 *)((long)puVar14 + 0xc) = 0;\n  puVar10 = puVar14 + -3;\n  puVar14[-3] = 0x10015f;\n  puVar14[-4] = 0x100172;\n  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);\n  pcVar9 = (char *)(ulong)uVar2;\n  pbVar7 = extraout_RDX;\n  if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }\nLAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n  *(undefined8 *)((long)puVar10 + -8) = 0x100513;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pbVar7;\n  iVar3 = (uint)pcVar9 + 0x42000000;\n  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);\n  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n                    \n  halt_baddata();\n}" (primitive_type "void") (function_declarator "FUN_00100000(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)" (identifier "FUN_00100000") (parameter_list "(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "long *param_4" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "ulong *param_5" (type_identifier "ulong") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *extraout_RDX;\n  byte *extraout_RDX_00;\n  ulong *puVar8;\n  byte *extraout_RDX_01;\n  char *pcVar9;\n  ulong *puVar10;\n  undefined8 *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  ulong *puVar14;\n  ulong *puVar15;\n  undefined8 *puVar16;\n  ulong *puVar17;\n  ulong *unaff_RBP;\n  undefined8 *puVar18;\n  byte bVar19;\n  ulong unaff_R15;\n  long in_FS_OFFSET;\n  ulong auStack_2c0 [12];\n  undefined4 auStack_25c [3];\n  undefined8 local_250;\n  undefined1 local_248 [32];\n  undefined4 auStack_228 [2];\n  ulong auStack_220 [2];\n  undefined4 auStack_210 [2];\n  ulong local_208 [2];\n  undefined4 local_1f8 [8];\n  ulong local_1d8;\n  undefined4 auStack_1d0 [2];\n  ulong auStack_1c8 [2];\n  undefined4 local_1b8 [28];\n  undefined8 local_148 [33];\n  undefined8 local_40;\n  ulong *puVar20;\n  \n  puVar11 = (undefined8 *)local_248;\n  puVar12 = local_248;\n  puVar13 = local_248;\n  puVar10 = (ulong *)local_248;\n  puVar14 = (ulong *)local_248;\n  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);\n  puVar18 = local_148;\n  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }\n  if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }\n  *(undefined4 *)(puVar14 + 8) = 7;\n  puVar14[9] = (ulong)(puVar14 + 0x20);\n  puVar14[10] = 0x20;\n  *(undefined4 *)(puVar14 + 0xb) = 0;\n  puVar14[-1] = 0x100133;\n  puVar14[-2] = 0x100154;\n  *(undefined4 *)((long)puVar14 + 0xc) = 0;\n  puVar10 = puVar14 + -3;\n  puVar14[-3] = 0x10015f;\n  puVar14[-4] = 0x100172;\n  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);\n  pcVar9 = (char *)(ulong)uVar2;\n  pbVar7 = extraout_RDX;\n  if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }\nLAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n  *(undefined8 *)((long)puVar10 + -8) = 0x100513;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pcVar9;\n  *pcVar9 = *pcVar9 + (char)pbVar7;\n  iVar3 = (uint)pcVar9 + 0x42000000;\n  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);\n  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n  *pcVar9 = *pcVar9 + cVar1;\n                    \n  halt_baddata();\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *extraout_RDX;" (type_identifier "byte") (pointer_declarator "*extraout_RDX" (* "*") (identifier "extraout_RDX")) (; ";")) (declaration "byte *extraout_RDX_00;" (type_identifier "byte") (pointer_declarator "*extraout_RDX_00" (* "*") (identifier "extraout_RDX_00")) (; ";")) (declaration "ulong *puVar8;" (type_identifier "ulong") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "byte *extraout_RDX_01;" (type_identifier "byte") (pointer_declarator "*extraout_RDX_01" (* "*") (identifier "extraout_RDX_01")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "ulong *puVar10;" (type_identifier "ulong") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined8 *puVar11;" (type_identifier "undefined8") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "ulong *puVar14;" (type_identifier "ulong") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "ulong *puVar15;" (type_identifier "ulong") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined8 *puVar16;" (type_identifier "undefined8") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "ulong *puVar17;" (type_identifier "ulong") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "ulong *unaff_RBP;" (type_identifier "ulong") (pointer_declarator "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (; ";")) (declaration "undefined8 *puVar18;" (type_identifier "undefined8") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "ulong unaff_R15;" (type_identifier "ulong") (identifier "unaff_R15") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "ulong auStack_2c0 [12];" (type_identifier "ulong") (array_declarator "auStack_2c0 [12]" (identifier "auStack_2c0") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined4 auStack_25c [3];" (type_identifier "undefined4") (array_declarator "auStack_25c [3]" (identifier "auStack_25c") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined8 local_250;" (type_identifier "undefined8") (identifier "local_250") (; ";")) (declaration "undefined1 local_248 [32];" (type_identifier "undefined1") (array_declarator "local_248 [32]" (identifier "local_248") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "undefined4 auStack_228 [2];" (type_identifier "undefined4") (array_declarator "auStack_228 [2]" (identifier "auStack_228") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "ulong auStack_220 [2];" (type_identifier "ulong") (array_declarator "auStack_220 [2]" (identifier "auStack_220") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 auStack_210 [2];" (type_identifier "undefined4") (array_declarator "auStack_210 [2]" (identifier "auStack_210") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "ulong local_208 [2];" (type_identifier "ulong") (array_declarator "local_208 [2]" (identifier "local_208") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_1f8 [8];" (type_identifier "undefined4") (array_declarator "local_1f8 [8]" (identifier "local_1f8") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "ulong local_1d8;" (type_identifier "ulong") (identifier "local_1d8") (; ";")) (declaration "undefined4 auStack_1d0 [2];" (type_identifier "undefined4") (array_declarator "auStack_1d0 [2]" (identifier "auStack_1d0") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "ulong auStack_1c8 [2];" (type_identifier "ulong") (array_declarator "auStack_1c8 [2]" (identifier "auStack_1c8") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_1b8 [28];" (type_identifier "undefined4") (array_declarator "local_1b8 [28]" (identifier "local_1b8") ([ "[") (number_literal "28") (] "]")) (; ";")) (declaration "undefined8 local_148 [33];" (type_identifier "undefined8") (array_declarator "local_148 [33]" (identifier "local_148") ([ "[") (number_literal "33") (] "]")) (; ";")) (declaration "undefined8 local_40;" (type_identifier "undefined8") (identifier "local_40") (; ";")) (declaration "ulong *puVar20;" (type_identifier "ulong") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (expression_statement "puVar11 = (undefined8 *)local_248;" (assignment_expression "puVar11 = (undefined8 *)local_248" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)local_248" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_248"))) (; ";")) (expression_statement "puVar12 = local_248;" (assignment_expression "puVar12 = local_248" (identifier "puVar12") (= "=") (identifier "local_248")) (; ";")) (expression_statement "puVar13 = local_248;" (assignment_expression "puVar13 = local_248" (identifier "puVar13") (= "=") (identifier "local_248")) (; ";")) (expression_statement "puVar10 = (ulong *)local_248;" (assignment_expression "puVar10 = (ulong *)local_248" (identifier "puVar10") (= "=") (cast_expression "(ulong *)local_248" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_248"))) (; ";")) (expression_statement "puVar14 = (ulong *)local_248;" (assignment_expression "puVar14 = (ulong *)local_248" (identifier "puVar14") (= "=") (cast_expression "(ulong *)local_248" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_248"))) (; ";")) (expression_statement "local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(undefined8 *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(undefined8 *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar18 = local_148;" (assignment_expression "puVar18 = local_148" (identifier "puVar18") (= "=") (identifier "local_148")) (; ";")) (for_statement "for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }" (for "for") (( "(") (assignment_expression "lVar5 = 0x20" (identifier "lVar5") (= "=") (number_literal "0x20")) (; ";") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *puVar18 = 0;\n    puVar18 = puVar18 + 1;\n  }" ({ "{") (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 1" (identifier "puVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (param_1 == 0) {\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }\n  else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar11 = &local_250;\n    local_250 = 0x1000ad;\nLAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);\n    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;\nLAB_001000c5:\n    puVar13 = puVar12 + -8;\n    *(undefined8 *)(puVar12 + -8) = 0x1000dd;\nLAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);\n    *(undefined8 *)(puVar13 + -8) = 0x1000f5;\n  }" ({ "{") (expression_statement "puVar11 = &local_250;" (assignment_expression "puVar11 = &local_250" (identifier "puVar11") (= "=") (pointer_expression "&local_250" (& "&") (identifier "local_250"))) (; ";")) (expression_statement "local_250 = 0x1000ad;" (assignment_expression "local_250 = 0x1000ad" (identifier "local_250") (= "=") (number_literal "0x1000ad")) (; ";")) (labeled_statement "LAB_001000ad:\n    puVar12 = (undefined1 *)((long)puVar11 + -8);" (statement_identifier "LAB_001000ad") (: ":") (expression_statement "puVar12 = (undefined1 *)((long)puVar11 + -8);" (assignment_expression "puVar12 = (undefined1 *)((long)puVar11 + -8)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)((long)puVar11 + -8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar11 + -8)" (( "(") (binary_expression "(long)puVar11 + -8" (cast_expression "(long)puVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar11")) (+ "+") (number_literal "-8")) () ")")))) (; ";"))) (expression_statement "*(undefined8 *)((long)puVar11 + -8) = 0x1000c5;" (assignment_expression "*(undefined8 *)((long)puVar11 + -8) = 0x1000c5" (pointer_expression "*(undefined8 *)((long)puVar11 + -8)" (* "*") (cast_expression "(undefined8 *)((long)puVar11 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar11 + -8)" (( "(") (binary_expression "(long)puVar11 + -8" (cast_expression "(long)puVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar11")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x1000c5")) (; ";")) (labeled_statement "LAB_001000c5:\n    puVar13 = puVar12 + -8;" (statement_identifier "LAB_001000c5") (: ":") (expression_statement "puVar13 = puVar12 + -8;" (assignment_expression "puVar13 = puVar12 + -8" (identifier "puVar13") (= "=") (binary_expression "puVar12 + -8" (identifier "puVar12") (+ "+") (number_literal "-8"))) (; ";"))) (expression_statement "*(undefined8 *)(puVar12 + -8) = 0x1000dd;" (assignment_expression "*(undefined8 *)(puVar12 + -8) = 0x1000dd" (pointer_expression "*(undefined8 *)(puVar12 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar12 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -8)" (( "(") (binary_expression "puVar12 + -8" (identifier "puVar12") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x1000dd")) (; ";")) (labeled_statement "LAB_001000dd:\n    puVar14 = (ulong *)(puVar13 + -8);" (statement_identifier "LAB_001000dd") (: ":") (expression_statement "puVar14 = (ulong *)(puVar13 + -8);" (assignment_expression "puVar14 = (ulong *)(puVar13 + -8)" (identifier "puVar14") (= "=") (cast_expression "(ulong *)(puVar13 + -8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (; ";"))) (expression_statement "*(undefined8 *)(puVar13 + -8) = 0x1000f5;" (assignment_expression "*(undefined8 *)(puVar13 + -8) = 0x1000f5" (pointer_expression "*(undefined8 *)(puVar13 + -8)" (* "*") (cast_expression "(undefined8 *)(puVar13 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x1000f5")) (; ";")) (} "}")) (else_clause "else {\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" (else "else") (compound_statement "{\n    unaff_RBP = param_5;\n    unaff_R15 = param_2;\n    if (param_3 == (byte *)0x0) goto LAB_001000ad;\n    if (param_4 == (long *)0x0) goto LAB_001000c5;\n    if (param_5 == (ulong *)0x0) goto LAB_001000dd;\n    pcVar9 = (char *)0xf;\n    pbVar7 = param_3;\n    if ((int)*param_5 != 1) goto LAB_0010006a;\n  }" ({ "{") (expression_statement "unaff_RBP = param_5;" (assignment_expression "unaff_RBP = param_5" (identifier "unaff_RBP") (= "=") (identifier "param_5")) (; ";")) (expression_statement "unaff_R15 = param_2;" (assignment_expression "unaff_R15 = param_2" (identifier "unaff_R15") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_3 == (byte *)0x0) goto LAB_001000ad;" (if "if") (parenthesized_expression "(param_3 == (byte *)0x0)" (( "(") (binary_expression "param_3 == (byte *)0x0" (identifier "param_3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001000ad;" (goto "goto") (statement_identifier "LAB_001000ad") (; ";"))) (if_statement "if (param_4 == (long *)0x0) goto LAB_001000c5;" (if "if") (parenthesized_expression "(param_4 == (long *)0x0)" (( "(") (binary_expression "param_4 == (long *)0x0" (identifier "param_4") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001000c5;" (goto "goto") (statement_identifier "LAB_001000c5") (; ";"))) (if_statement "if (param_5 == (ulong *)0x0) goto LAB_001000dd;" (if "if") (parenthesized_expression "(param_5 == (ulong *)0x0)" (( "(") (binary_expression "param_5 == (ulong *)0x0" (identifier "param_5") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001000dd;" (goto "goto") (statement_identifier "LAB_001000dd") (; ";"))) (expression_statement "pcVar9 = (char *)0xf;" (assignment_expression "pcVar9 = (char *)0xf" (identifier "pcVar9") (= "=") (cast_expression "(char *)0xf" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf"))) (; ";")) (expression_statement "pbVar7 = param_3;" (assignment_expression "pbVar7 = param_3" (identifier "pbVar7") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((int)*param_5 != 1) goto LAB_0010006a;" (if "if") (parenthesized_expression "((int)*param_5 != 1)" (( "(") (binary_expression "(int)*param_5 != 1" (cast_expression "(int)*param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0010006a;" (goto "goto") (statement_identifier "LAB_0010006a") (; ";"))) (} "}")))) (expression_statement "*(undefined4 *)(puVar14 + 8) = 7;" (assignment_expression "*(undefined4 *)(puVar14 + 8) = 7" (pointer_expression "*(undefined4 *)(puVar14 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 8)" (( "(") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "puVar14[9] = (ulong)(puVar14 + 0x20);" (assignment_expression "puVar14[9] = (ulong)(puVar14 + 0x20)" (subscript_expression "puVar14[9]" (identifier "puVar14") ([ "[") (number_literal "9") (] "]")) (= "=") (call_expression "(ulong)(puVar14 + 0x20)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(puVar14 + 0x20)" (( "(") (binary_expression "puVar14 + 0x20" (identifier "puVar14") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "puVar14[10] = 0x20;" (assignment_expression "puVar14[10] = 0x20" (subscript_expression "puVar14[10]" (identifier "puVar14") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 0xb) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0xb)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xb)" (( "(") (binary_expression "puVar14 + 0xb" (identifier "puVar14") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[-1] = 0x100133;" (assignment_expression "puVar14[-1] = 0x100133" (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x100133")) (; ";")) (expression_statement "puVar14[-2] = 0x100154;" (assignment_expression "puVar14[-2] = 0x100154" (subscript_expression "puVar14[-2]" (identifier "puVar14") ([ "[") (number_literal "-2") (] "]")) (= "=") (number_literal "0x100154")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar14 + 0xc) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 0xc) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 0xc)" (* "*") (cast_expression "(undefined4 *)((long)puVar14 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 0xc)" (( "(") (binary_expression "(long)puVar14 + 0xc" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = puVar14 + -3;" (assignment_expression "puVar10 = puVar14 + -3" (identifier "puVar10") (= "=") (binary_expression "puVar14 + -3" (identifier "puVar14") (+ "+") (number_literal "-3"))) (; ";")) (expression_statement "puVar14[-3] = 0x10015f;" (assignment_expression "puVar14[-3] = 0x10015f" (subscript_expression "puVar14[-3]" (identifier "puVar14") ([ "[") (number_literal "-3") (] "]")) (= "=") (number_literal "0x10015f")) (; ";")) (expression_statement "puVar14[-4] = 0x100172;" (assignment_expression "puVar14[-4] = 0x100172" (subscript_expression "puVar14[-4]" (identifier "puVar14") ([ "[") (number_literal "-4") (] "]")) (= "=") (number_literal "0x100172")) (; ";")) (expression_statement "uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);" (assignment_expression "uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" (identifier "uVar2") (= "=") (call_expression "(*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" (parenthesized_expression "(*pcRam0000000000100172)" (( "(") (pointer_expression "*pcRam0000000000100172" (* "*") (identifier "pcRam0000000000100172")) () ")")) (argument_list "(puVar14 + 2,puVar14[9],puVar14 + 8,1,1)" (( "(") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2")) (, ",") (subscript_expression "puVar14[9]" (identifier "puVar14") ([ "[") (number_literal "9") (] "]")) (, ",") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8")) (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "pcVar9 = (char *)(ulong)uVar2;" (assignment_expression "pcVar9 = (char *)(ulong)uVar2" (identifier "pcVar9") (= "=") (cast_expression "(char *)(ulong)uVar2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")))) (; ";")) (expression_statement "pbVar7 = extraout_RDX;" (assignment_expression "pbVar7 = extraout_RDX" (identifier "pbVar7") (= "=") (identifier "extraout_RDX")) (; ";")) (if_statement "if (uVar2 == 0) {\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = unaff_RBP[3];\n    puVar14[-4] = 0x100186;\n    uVar4 = (*pcRam0000000000100186)(uVar4);\n    puVar14[-4] = 0x10018f;\n    puVar14[-2] = uVar4;\n    puVar10 = puVar14 + -5;\n    puVar14[-5] = 0x1001a1;\n    puVar14[-4] = uVar4;\n    if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }\n  }" ({ "{") (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" (identifier "uVar4") (= "=") (subscript_expression "unaff_RBP[3]" (identifier "unaff_RBP") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar14[-4] = 0x100186;" (assignment_expression "puVar14[-4] = 0x100186" (subscript_expression "puVar14[-4]" (identifier "puVar14") ([ "[") (number_literal "-4") (] "]")) (= "=") (number_literal "0x100186")) (; ";")) (expression_statement "uVar4 = (*pcRam0000000000100186)(uVar4);" (assignment_expression "uVar4 = (*pcRam0000000000100186)(uVar4)" (identifier "uVar4") (= "=") (call_expression "(*pcRam0000000000100186)(uVar4)" (parenthesized_expression "(*pcRam0000000000100186)" (( "(") (pointer_expression "*pcRam0000000000100186" (* "*") (identifier "pcRam0000000000100186")) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "puVar14[-4] = 0x10018f;" (assignment_expression "puVar14[-4] = 0x10018f" (subscript_expression "puVar14[-4]" (identifier "puVar14") ([ "[") (number_literal "-4") (] "]")) (= "=") (number_literal "0x10018f")) (; ";")) (expression_statement "puVar14[-2] = uVar4;" (assignment_expression "puVar14[-2] = uVar4" (subscript_expression "puVar14[-2]" (identifier "puVar14") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar10 = puVar14 + -5;" (assignment_expression "puVar10 = puVar14 + -5" (identifier "puVar10") (= "=") (binary_expression "puVar14 + -5" (identifier "puVar14") (+ "+") (number_literal "-5"))) (; ";")) (expression_statement "puVar14[-5] = 0x1001a1;" (assignment_expression "puVar14[-5] = 0x1001a1" (subscript_expression "puVar14[-5]" (identifier "puVar14") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x1001a1")) (; ";")) (expression_statement "puVar14[-4] = uVar4;" (assignment_expression "puVar14[-4] = uVar4" (subscript_expression "puVar14[-4]" (identifier "puVar14") ([ "[") (number_literal "-4") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if ((uVar4 == 0) || (uVar4 == 0)) {\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }\n    else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" (if "if") (parenthesized_expression "((uVar4 == 0) || (uVar4 == 0))" (( "(") (binary_expression "(uVar4 == 0) || (uVar4 == 0)" (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }\n      if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }\n      *(undefined8 *)((long)puVar10 + -8) = 0x100310;\n      (*pcRam0000000000100310)();\n      pcVar9 = (char *)0xd;\n      pbVar7 = extraout_RDX_00;\n    }" ({ "{") (if_statement "if (puVar14[-3] != 0) {\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }" (if "if") (parenthesized_expression "(puVar14[-3] != 0)" (( "(") (binary_expression "puVar14[-3] != 0" (subscript_expression "puVar14[-3]" (identifier "puVar14") ([ "[") (number_literal "-3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar10 = puVar14 + -6;\n        puVar14[-6] = 0x1002f3;\n      }" ({ "{") (expression_statement "puVar10 = puVar14 + -6;" (assignment_expression "puVar10 = puVar14 + -6" (identifier "puVar10") (= "=") (binary_expression "puVar14 + -6" (identifier "puVar14") (+ "+") (number_literal "-6"))) (; ";")) (expression_statement "puVar14[-6] = 0x1002f3;" (assignment_expression "puVar14[-6] = 0x1002f3" (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]")) (= "=") (number_literal "0x1002f3")) (; ";")) (} "}"))) (if_statement "if (*(long *)((long)puVar10 + 8) != 0) {\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }" (if "if") (parenthesized_expression "(*(long *)((long)puVar10 + 8) != 0)" (( "(") (binary_expression "*(long *)((long)puVar10 + 8) != 0" (pointer_expression "*(long *)((long)puVar10 + 8)" (* "*") (cast_expression "(long *)((long)puVar10 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + 8)" (( "(") (binary_expression "(long)puVar10 + 8" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar16 = (undefined8 *)((long)puVar10 + -8);\n        puVar10 = (ulong *)((long)puVar10 + -8);\n        *puVar16 = 0x100305;\n      }" ({ "{") (expression_statement "puVar16 = (undefined8 *)((long)puVar10 + -8);" (assignment_expression "puVar16 = (undefined8 *)((long)puVar10 + -8)" (identifier "puVar16") (= "=") (cast_expression "(undefined8 *)((long)puVar10 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + -8)" (( "(") (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "puVar10 = (ulong *)((long)puVar10 + -8);" (assignment_expression "puVar10 = (ulong *)((long)puVar10 + -8)" (identifier "puVar10") (= "=") (cast_expression "(ulong *)((long)puVar10 + -8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + -8)" (( "(") (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "*puVar16 = 0x100305;" (assignment_expression "*puVar16 = 0x100305" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (number_literal "0x100305")) (; ";")) (} "}"))) (expression_statement "*(undefined8 *)((long)puVar10 + -8) = 0x100310;" (assignment_expression "*(undefined8 *)((long)puVar10 + -8) = 0x100310" (pointer_expression "*(undefined8 *)((long)puVar10 + -8)" (* "*") (cast_expression "(undefined8 *)((long)puVar10 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + -8)" (( "(") (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x100310")) (; ";")) (expression_statement "(*pcRam0000000000100310)();" (call_expression "(*pcRam0000000000100310)()" (parenthesized_expression "(*pcRam0000000000100310)" (( "(") (pointer_expression "*pcRam0000000000100310" (* "*") (identifier "pcRam0000000000100310")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar9 = (char *)0xd;" (assignment_expression "pcVar9 = (char *)0xd" (identifier "pcVar9") (= "=") (cast_expression "(char *)0xd" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xd"))) (; ";")) (expression_statement "pbVar7 = extraout_RDX_00;" (assignment_expression "pbVar7 = extraout_RDX_00" (identifier "pbVar7") (= "=") (identifier "extraout_RDX_00")) (; ";")) (} "}")) (else_clause "else {\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" (else "else") (compound_statement "{\n      *(undefined4 *)(puVar14 + 0xb) = 2;\n      puVar14[0xc] = *puVar14;\n      puVar14[0xd] = 1;\n      *(undefined4 *)(puVar14 + 0xe) = 0;\n      *(undefined4 *)(puVar14 + 0x13) = 5;\n      puVar14[0x14] = puVar14[-4];\n      puVar14[0x15] = 0x80;\n      *(undefined4 *)(puVar14 + 0x16) = 0;\n      uVar6 = 3;\n      puVar14[-6] = 0x100231;\n      pcVar9 = (char *)(uVar4 & 0xffffffff);\n      puVar8 = puVar14 + 3;\n      puVar17 = puVar14 + -6;\n      puVar20 = (ulong *)(undefined1 *)0x1;\n      if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }\n      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;\n      puVar10 = (ulong *)((long)puVar17 + -0x10);\n      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;\n      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;\n      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;\n      pbVar7 = extraout_RDX_01;\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar14 + 0xb) = 2;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = 2" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0xb)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xb)" (( "(") (binary_expression "puVar14 + 0xb" (identifier "puVar14") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar14[0xc] = *puVar14;" (assignment_expression "puVar14[0xc] = *puVar14" (subscript_expression "puVar14[0xc]" (identifier "puVar14") ([ "[") (number_literal "0xc") (] "]")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar14[0xd] = 1;" (assignment_expression "puVar14[0xd] = 1" (subscript_expression "puVar14[0xd]" (identifier "puVar14") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 0xe) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0xe) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0xe)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0xe)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xe)" (( "(") (binary_expression "puVar14 + 0xe" (identifier "puVar14") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 0x13) = 5;" (assignment_expression "*(undefined4 *)(puVar14 + 0x13) = 5" (pointer_expression "*(undefined4 *)(puVar14 + 0x13)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0x13)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x13)" (( "(") (binary_expression "puVar14 + 0x13" (identifier "puVar14") (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "puVar14[0x14] = puVar14[-4];" (assignment_expression "puVar14[0x14] = puVar14[-4]" (subscript_expression "puVar14[0x14]" (identifier "puVar14") ([ "[") (number_literal "0x14") (] "]")) (= "=") (subscript_expression "puVar14[-4]" (identifier "puVar14") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "puVar14[0x15] = 0x80;" (assignment_expression "puVar14[0x15] = 0x80" (subscript_expression "puVar14[0x15]" (identifier "puVar14") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0x80")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 0x16) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0x16) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0x16)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0x16)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x16)" (( "(") (binary_expression "puVar14 + 0x16" (identifier "puVar14") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 3;" (assignment_expression "uVar6 = 3" (identifier "uVar6") (= "=") (number_literal "3")) (; ";")) (expression_statement "puVar14[-6] = 0x100231;" (assignment_expression "puVar14[-6] = 0x100231" (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]")) (= "=") (number_literal "0x100231")) (; ";")) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" (identifier "pcVar9") (= "=") (cast_expression "(char *)(uVar4 & 0xffffffff)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 & 0xffffffff)" (( "(") (binary_expression "uVar4 & 0xffffffff" (identifier "uVar4") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "puVar8 = puVar14 + 3;" (assignment_expression "puVar8 = puVar14 + 3" (identifier "puVar8") (= "=") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar17 = puVar14 + -6;" (assignment_expression "puVar17 = puVar14 + -6" (identifier "puVar17") (= "=") (binary_expression "puVar14 + -6" (identifier "puVar14") (+ "+") (number_literal "-6"))) (; ";")) (expression_statement "puVar20 = (ulong *)(undefined1 *)0x1;" (assignment_expression "puVar20 = (ulong *)(undefined1 *)0x1" (identifier "puVar20") (= "=") (cast_expression "(ulong *)(undefined1 *)0x1" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")))) (; ";")) (if_statement "if ((int)uVar4 == 0) {\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((int)uVar4 == 0)" (( "(") (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = unaff_RBP[3];\n        puVar14[-7] = 0x100245;\n        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);\n        uVar4 = lVar5 + 1;\n        *puVar14 = uVar4;\n        uVar6 = puVar14[-4];\n        puVar14[-7] = 0x10026c;\n        pcVar9 = (char *)(uVar4 & 0xffffffff);\n        puVar8 = unaff_RBP;\n        puVar17 = puVar14 + -7;\n        unaff_R15 = puVar14[-1];\n        puVar20 = puVar14;\n        if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" (identifier "uVar4") (= "=") (subscript_expression "unaff_RBP[3]" (identifier "unaff_RBP") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar14[-7] = 0x100245;" (assignment_expression "puVar14[-7] = 0x100245" (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]")) (= "=") (number_literal "0x100245")) (; ";")) (expression_statement "lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);" (assignment_expression "lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1)" (identifier "lVar5") (= "=") (call_expression "(*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1)" (parenthesized_expression "(*pcRam0000000000100245)" (( "(") (pointer_expression "*pcRam0000000000100245" (* "*") (identifier "pcRam0000000000100245")) () ")")) (argument_list "(uVar4,unaff_R15,puVar14 + 3,3,1)" (( "(") (identifier "uVar4") (, ",") (identifier "unaff_R15") (, ",") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3")) (, ",") (number_literal "3") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar4 = lVar5 + 1;" (assignment_expression "uVar4 = lVar5 + 1" (identifier "uVar4") (= "=") (binary_expression "lVar5 + 1" (identifier "lVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar6 = puVar14[-4];" (assignment_expression "uVar6 = puVar14[-4]" (identifier "uVar6") (= "=") (subscript_expression "puVar14[-4]" (identifier "puVar14") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "puVar14[-7] = 0x10026c;" (assignment_expression "puVar14[-7] = 0x10026c" (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]")) (= "=") (number_literal "0x10026c")) (; ";")) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" (identifier "pcVar9") (= "=") (cast_expression "(char *)(uVar4 & 0xffffffff)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 & 0xffffffff)" (( "(") (binary_expression "uVar4 & 0xffffffff" (identifier "uVar4") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "puVar8 = unaff_RBP;" (assignment_expression "puVar8 = unaff_RBP" (identifier "puVar8") (= "=") (identifier "unaff_RBP")) (; ";")) (expression_statement "puVar17 = puVar14 + -7;" (assignment_expression "puVar17 = puVar14 + -7" (identifier "puVar17") (= "=") (binary_expression "puVar14 + -7" (identifier "puVar14") (+ "+") (number_literal "-7"))) (; ";")) (expression_statement "unaff_R15 = puVar14[-1];" (assignment_expression "unaff_R15 = puVar14[-1]" (identifier "unaff_R15") (= "=") (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar20 = puVar14;" (assignment_expression "puVar20 = puVar14" (identifier "puVar20") (= "=") (identifier "puVar14")) (; ";")) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((int)uVar4 == 0)" (( "(") (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = unaff_RBP[3];\n          puVar14[-8] = 0x100280;\n          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);\n          uVar4 = lVar5 + 1;\n          if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }\n          *puVar14 = uVar4;\n          puVar8 = (ulong *)puVar14[-1];\n          puVar15 = puVar14 + -8;\n          puVar14[-8] = 0x1002b2;\n          pcVar9 = (char *)(uVar4 & 0xffffffff);\n          puVar17 = puVar14 + -8;\n          unaff_R15 = uVar6;\n          if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar4 = unaff_RBP[3];" (assignment_expression "uVar4 = unaff_RBP[3]" (identifier "uVar4") (= "=") (subscript_expression "unaff_RBP[3]" (identifier "unaff_RBP") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar14[-8] = 0x100280;" (assignment_expression "puVar14[-8] = 0x100280" (subscript_expression "puVar14[-8]" (identifier "puVar14") ([ "[") (number_literal "-8") (] "]")) (= "=") (number_literal "0x100280")) (; ";")) (expression_statement "lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);" (assignment_expression "lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" (identifier "lVar5") (= "=") (call_expression "(*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" (parenthesized_expression "(*pcRam0000000000100280)" (( "(") (pointer_expression "*pcRam0000000000100280" (* "*") (identifier "pcRam0000000000100280")) () ")")) (argument_list "(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14)" (( "(") (identifier "uVar4") (, ",") (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]")) (, ",") (identifier "unaff_RBP") (, ",") (identifier "uVar6") (, ",") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "uVar4 = lVar5 + 1;" (assignment_expression "uVar4 = lVar5 + 1" (identifier "uVar4") (= "=") (binary_expression "lVar5 + 1" (identifier "lVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0x80 < uVar4) {\n            uVar4 = 0x80;\n          }" (if "if") (parenthesized_expression "(0x80 < uVar4)" (( "(") (binary_expression "0x80 < uVar4" (number_literal "0x80") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n            uVar4 = 0x80;\n          }" ({ "{") (expression_statement "uVar4 = 0x80;" (assignment_expression "uVar4 = 0x80" (identifier "uVar4") (= "=") (number_literal "0x80")) (; ";")) (} "}"))) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar8 = (ulong *)puVar14[-1];" (assignment_expression "puVar8 = (ulong *)puVar14[-1]" (identifier "puVar8") (= "=") (cast_expression "(ulong *)puVar14[-1]" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]")))) (; ";")) (expression_statement "puVar15 = puVar14 + -8;" (assignment_expression "puVar15 = puVar14 + -8" (identifier "puVar15") (= "=") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "puVar14[-8] = 0x1002b2;" (assignment_expression "puVar14[-8] = 0x1002b2" (subscript_expression "puVar14[-8]" (identifier "puVar14") ([ "[") (number_literal "-8") (] "]")) (= "=") (number_literal "0x1002b2")) (; ";")) (expression_statement "pcVar9 = (char *)(uVar4 & 0xffffffff);" (assignment_expression "pcVar9 = (char *)(uVar4 & 0xffffffff)" (identifier "pcVar9") (= "=") (cast_expression "(char *)(uVar4 & 0xffffffff)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 & 0xffffffff)" (( "(") (binary_expression "uVar4 & 0xffffffff" (identifier "uVar4") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" (identifier "puVar17") (= "=") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "unaff_R15 = uVar6;" (assignment_expression "unaff_R15 = uVar6" (identifier "unaff_R15") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if ((int)uVar4 == 0) {\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }" (if "if") (parenthesized_expression "((int)uVar4 == 0)" (( "(") (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar17 = (ulong *)puVar14[0x12];\n            if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }\n          }" ({ "{") (expression_statement "puVar17 = (ulong *)puVar14[0x12];" (assignment_expression "puVar17 = (ulong *)puVar14[0x12]" (identifier "puVar17") (= "=") (cast_expression "(ulong *)puVar14[0x12]" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[0x12]" (identifier "puVar14") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (if_statement "if ((ulong *)puVar14[-1] < puVar17) {\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }\n            else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" (if "if") (parenthesized_expression "((ulong *)puVar14[-1] < puVar17)" (( "(") (binary_expression "(ulong *)puVar14[-1] < puVar17" (cast_expression "(ulong *)puVar14[-1]" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]"))) (< "<") (identifier "puVar17")) () ")")) (compound_statement "{\n              pcVar9 = (char *)0x7;\n              puVar17 = puVar14 + -8;\n            }" ({ "{") (expression_statement "pcVar9 = (char *)0x7;" (assignment_expression "pcVar9 = (char *)0x7" (identifier "pcVar9") (= "=") (cast_expression "(char *)0x7" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) (; ";")) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" (identifier "puVar17") (= "=") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8"))) (; ";")) (} "}")) (else_clause "else if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" (else "else") (if_statement "if ((ulong *)*param_4 < puVar17) {\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }\n            else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" (if "if") (parenthesized_expression "((ulong *)*param_4 < puVar17)" (( "(") (binary_expression "(ulong *)*param_4 < puVar17" (cast_expression "(ulong *)*param_4" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (< "<") (identifier "puVar17")) () ")")) (compound_statement "{\n              *param_4 = (long)puVar17;\n              pcVar9 = (char *)0x6;\n              puVar17 = puVar14 + -8;\n            }" ({ "{") (expression_statement "*param_4 = (long)puVar17;" (assignment_expression "*param_4 = (long)puVar17" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17"))) (; ";")) (expression_statement "pcVar9 = (char *)0x6;" (assignment_expression "pcVar9 = (char *)0x6" (identifier "pcVar9") (= "=") (cast_expression "(char *)0x6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) (; ";")) (expression_statement "puVar17 = puVar14 + -8;" (assignment_expression "puVar17 = puVar14 + -8" (identifier "puVar17") (= "=") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8"))) (; ";")) (} "}")) (else_clause "else {\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" (else "else") (compound_statement "{\n              puVar14[-2] = 0;\n              if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }\n              *param_4 = (long)puVar8;\n              puVar17 = puVar15;\n              puVar20 = puVar14;\n            }" ({ "{") (expression_statement "puVar14[-2] = 0;" (assignment_expression "puVar14[-2] = 0" (subscript_expression "puVar14[-2]" (identifier "puVar14") ([ "[") (number_literal "-2") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar17 == (ulong *)0x0) {\n                puVar8 = (ulong *)0x0;\n              }\n              else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" (if "if") (parenthesized_expression "(puVar17 == (ulong *)0x0)" (( "(") (binary_expression "puVar17 == (ulong *)0x0" (identifier "puVar17") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                puVar8 = (ulong *)0x0;\n              }" ({ "{") (expression_statement "puVar8 = (ulong *)0x0;" (assignment_expression "puVar8 = (ulong *)0x0" (identifier "puVar8") (= "=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" (else "else") (compound_statement "{\n                puVar8 = (ulong *)0x0;\n                uVar2 = (uint)puVar17 & 7;\n                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;\n                if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }\n                param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);\n                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }\n                puVar14[-2] = (ulong)puVar8;\n                puVar14 = puVar20;\n              }" ({ "{") (expression_statement "puVar8 = (ulong *)0x0;" (assignment_expression "puVar8 = (ulong *)0x0" (identifier "puVar8") (= "=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar2 = (uint)puVar17 & 7;" (assignment_expression "uVar2 = (uint)puVar17 & 7" (identifier "uVar2") (= "=") (binary_expression "(uint)puVar17 & 7" (cast_expression "(uint)puVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar17")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;" (if "if") (parenthesized_expression "(((ulong)puVar17 & 7) == 0)" (( "(") (binary_expression "((ulong)puVar17 & 7) == 0" (parenthesized_expression "((ulong)puVar17 & 7)" (( "(") (binary_expression "(ulong)puVar17 & 7" (cast_expression "(ulong)puVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puVar17")) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00100435;" (goto "goto") (statement_identifier "LAB_00100435") (; ";"))) (if_statement "if (uVar2 != 1) {\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }" (if "if") (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                  if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }\n                  unaff_R15 = puVar14[-6];\n                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);\n                  puVar20 = (ulong *)(ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar8 = (ulong *)((long)puVar8 + 1);\n                }" ({ "{") (if_statement "if (uVar2 != 2) {\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }" (if "if") (parenthesized_expression "(uVar2 != 2)" (( "(") (binary_expression "uVar2 != 2" (identifier "uVar2") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }\n                    param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);\n                    puVar8 = (ulong *)((long)puVar8 + 1);\n                  }" ({ "{") (if_statement "if (uVar2 != 3) {\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }" (if "if") (parenthesized_expression "(uVar2 != 3)" (( "(") (binary_expression "uVar2 != 3" (identifier "uVar2") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n                      if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }\n                      uVar6 = puVar14[-7];\n                      param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);\n                      puVar8 = (ulong *)((long)puVar8 + 1);\n                    }" ({ "{") (if_statement "if (uVar2 != 4) {\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }" (if "if") (parenthesized_expression "(uVar2 != 4)" (( "(") (binary_expression "uVar2 != 4" (identifier "uVar2") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n                        if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }\n                        param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);\n                        puVar8 = (ulong *)((long)puVar8 + 1);\n                      }" ({ "{") (if_statement "if (uVar2 != 5) {\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }" (if "if") (parenthesized_expression "(uVar2 != 5)" (( "(") (binary_expression "uVar2 != 5" (identifier "uVar2") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                          if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }\n                          uVar4 = (ulong)(uVar2 != 6);\n                          param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);\n                          puVar8 = (ulong *)(uVar4 + 1);\n                        }" ({ "{") (if_statement "if (uVar2 != 6) {\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }" (if "if") (parenthesized_expression "(uVar2 != 6)" (( "(") (binary_expression "uVar2 != 6" (identifier "uVar2") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];\n                          }" ({ "{") (expression_statement "*param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];" (assignment_expression "*param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "*(byte *)puVar14[-6] ^ *(byte *)puVar14[-7]" (pointer_expression "*(byte *)puVar14[-6]" (* "*") (cast_expression "(byte *)puVar14[-6]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]")))) (^ "^") (pointer_expression "*(byte *)puVar14[-7]" (* "*") (cast_expression "(byte *)puVar14[-7]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]")))))) (; ";")) (} "}"))) (expression_statement "uVar4 = (ulong)(uVar2 != 6);" (assignment_expression "uVar4 = (ulong)(uVar2 != 6)" (identifier "uVar4") (= "=") (call_expression "(ulong)(uVar2 != 6)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar2 != 6)" (( "(") (binary_expression "uVar2 != 6" (identifier "uVar2") (!= "!=") (number_literal "6")) () ")")))) (; ";")) (expression_statement "param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);" (assignment_expression "param_3[uVar4] =\n                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4)" (subscript_expression "param_3[uVar4]" (identifier "param_3") ([ "[") (identifier "uVar4") (] "]")) (= "=") (binary_expression "*(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4)" (pointer_expression "*(byte *)(puVar14[-6] + uVar4)" (* "*") (cast_expression "(byte *)(puVar14[-6] + uVar4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-6] + uVar4)" (( "(") (binary_expression "puVar14[-6] + uVar4" (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]")) (+ "+") (identifier "uVar4")) () ")")))) (^ "^") (pointer_expression "*(byte *)(puVar14[-7] + uVar4)" (* "*") (cast_expression "(byte *)(puVar14[-7] + uVar4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-7] + uVar4)" (( "(") (binary_expression "puVar14[-7] + uVar4" (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]")) (+ "+") (identifier "uVar4")) () ")")))))) (; ";")) (expression_statement "puVar8 = (ulong *)(uVar4 + 1);" (assignment_expression "puVar8 = (ulong *)(uVar4 + 1)" (identifier "puVar8") (= "=") (cast_expression "(ulong *)(uVar4 + 1)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 + 1)" (( "(") (binary_expression "uVar4 + 1" (identifier "uVar4") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                             *(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" (identifier "param_3") ([ "[") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (] "]")) (= "=") (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^\n                             *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" (* "*") (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-6] + (long)puVar8)" (( "(") (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))) (^ "^") (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" (* "*") (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-7] + (long)puVar8)" (( "(") (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))))) (; ";")) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" (identifier "puVar8") (= "=") (cast_expression "(ulong *)((long)puVar8 + 1)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 1)" (( "(") (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar6 = puVar14[-7];" (assignment_expression "uVar6 = puVar14[-7]" (identifier "uVar6") (= "=") (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" (identifier "param_3") ([ "[") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (] "]")) (= "=") (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" (* "*") (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-6] + (long)puVar8)" (( "(") (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))) (^ "^") (pointer_expression "*(byte *)(uVar6 + (long)puVar8)" (* "*") (cast_expression "(byte *)(uVar6 + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 + (long)puVar8)" (( "(") (binary_expression "uVar6 + (long)puVar8" (identifier "uVar6") (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))))) (; ";")) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" (identifier "puVar8") (= "=") (cast_expression "(ulong *)((long)puVar8 + 1)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 1)" (( "(") (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                         *(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" (identifier "param_3") ([ "[") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (] "]")) (= "=") (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^\n                         *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" (* "*") (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-6] + (long)puVar8)" (( "(") (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))) (^ "^") (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" (* "*") (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-7] + (long)puVar8)" (( "(") (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))))) (; ";")) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" (identifier "puVar8") (= "=") (cast_expression "(ulong *)((long)puVar8 + 1)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 1)" (( "(") (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "unaff_R15 = puVar14[-6];" (assignment_expression "unaff_R15 = puVar14[-6]" (identifier "unaff_R15") (= "=") (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8)" (identifier "bVar19") (= "=") (binary_expression "*(byte *)(unaff_R15 + (long)puVar8) ^\n                           *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(unaff_R15 + (long)puVar8)" (* "*") (cast_expression "(byte *)(unaff_R15 + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_R15 + (long)puVar8)" (( "(") (binary_expression "unaff_R15 + (long)puVar8" (identifier "unaff_R15") (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))) (^ "^") (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" (* "*") (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-7] + (long)puVar8)" (( "(") (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))))) (; ";")) (expression_statement "puVar20 = (ulong *)(ulong)bVar19;" (assignment_expression "puVar20 = (ulong *)(ulong)bVar19" (identifier "puVar20") (= "=") (cast_expression "(ulong *)(ulong)bVar19" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")))) (; ";")) (expression_statement "param_3[(long)puVar8] = bVar19;" (assignment_expression "param_3[(long)puVar8] = bVar19" (subscript_expression "param_3[(long)puVar8]" (identifier "param_3") ([ "[") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "puVar8 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" (identifier "puVar8") (= "=") (cast_expression "(ulong *)((long)puVar8 + 1)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 1)" (( "(") (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);" (assignment_expression "param_3[(long)puVar8] =\n                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8)" (subscript_expression "param_3[(long)puVar8]" (identifier "param_3") ([ "[") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (] "]")) (= "=") (binary_expression "*(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8)" (pointer_expression "*(byte *)(puVar14[-6] + (long)puVar8)" (* "*") (cast_expression "(byte *)(puVar14[-6] + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-6] + (long)puVar8)" (( "(") (binary_expression "puVar14[-6] + (long)puVar8" (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))) (^ "^") (pointer_expression "*(byte *)(puVar14[-7] + (long)puVar8)" (* "*") (cast_expression "(byte *)(puVar14[-7] + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14[-7] + (long)puVar8)" (( "(") (binary_expression "puVar14[-7] + (long)puVar8" (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))))) (; ";")) (for_statement "for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }" (for "for") (( "(") (assignment_expression "puVar8 = (ulong *)((long)puVar8 + 1)" (identifier "puVar8") (= "=") (cast_expression "(ulong *)((long)puVar8 + 1)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 1)" (( "(") (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "1")) () ")")))) (; ";") (binary_expression "puVar17 != puVar8" (identifier "puVar17") (!= "!=") (identifier "puVar8")) (; ";") (assignment_expression "puVar8 = puVar8 + 1" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\nLAB_00100435:\n                  uVar4 = puVar14[-6];\n                  lVar5 = puVar14[-7];\n                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);\n                  uVar6 = (ulong)bVar19;\n                  param_3[(long)puVar8] = bVar19;\n                  puVar20 = (ulong *)((long)puVar8 + 1);\n                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;\n                  unaff_R15 = (ulong)bVar19;\n                  (param_3 + 1)[(long)puVar8] = bVar19;\n                  (param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);\n                  (param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);\n                  (param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);\n                  (param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);\n                  (param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);\n                  (param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);\n                }" ({ "{") (labeled_statement "LAB_00100435:\n                  uVar4 = puVar14[-6];" (statement_identifier "LAB_00100435") (: ":") (expression_statement "uVar4 = puVar14[-6];" (assignment_expression "uVar4 = puVar14[-6]" (identifier "uVar4") (= "=") (subscript_expression "puVar14[-6]" (identifier "puVar14") ([ "[") (number_literal "-6") (] "]"))) (; ";"))) (expression_statement "lVar5 = puVar14[-7];" (assignment_expression "lVar5 = puVar14[-7]" (identifier "lVar5") (= "=") (subscript_expression "puVar14[-7]" (identifier "puVar14") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);" (assignment_expression "bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8)" (identifier "bVar19") (= "=") (binary_expression "*(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8)" (pointer_expression "*(byte *)(uVar4 + (long)puVar8)" (* "*") (cast_expression "(byte *)(uVar4 + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 + (long)puVar8)" (( "(") (binary_expression "uVar4 + (long)puVar8" (identifier "uVar4") (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))) (^ "^") (pointer_expression "*(byte *)(lVar5 + (long)puVar8)" (* "*") (cast_expression "(byte *)(lVar5 + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + (long)puVar8)" (( "(") (binary_expression "lVar5 + (long)puVar8" (identifier "lVar5") (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))))) (; ";")) (expression_statement "uVar6 = (ulong)bVar19;" (assignment_expression "uVar6 = (ulong)bVar19" (identifier "uVar6") (= "=") (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19"))) (; ";")) (expression_statement "param_3[(long)puVar8] = bVar19;" (assignment_expression "param_3[(long)puVar8] = bVar19" (subscript_expression "param_3[(long)puVar8]" (identifier "param_3") ([ "[") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "puVar20 = (ulong *)((long)puVar8 + 1);" (assignment_expression "puVar20 = (ulong *)((long)puVar8 + 1)" (identifier "puVar20") (= "=") (cast_expression "(ulong *)((long)puVar8 + 1)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 1)" (( "(") (binary_expression "(long)puVar8 + 1" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)\n                  ;" (assignment_expression "bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)" (identifier "bVar19") (= "=") (binary_expression "*(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)" (pointer_expression "*(byte *)(uVar4 + 1 + (long)puVar8)" (* "*") (cast_expression "(byte *)(uVar4 + 1 + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 + 1 + (long)puVar8)" (( "(") (binary_expression "uVar4 + 1 + (long)puVar8" (binary_expression "uVar4 + 1" (identifier "uVar4") (+ "+") (number_literal "1")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))) (^ "^") (pointer_expression "*(byte *)(lVar5 + 1 + (long)puVar8)" (* "*") (cast_expression "(byte *)(lVar5 + 1 + (long)puVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 1 + (long)puVar8)" (( "(") (binary_expression "lVar5 + 1 + (long)puVar8" (binary_expression "lVar5 + 1" (identifier "lVar5") (+ "+") (number_literal "1")) (+ "+") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) () ")")))))) (; ";")) (expression_statement "unaff_R15 = (ulong)bVar19;" (assignment_expression "unaff_R15 = (ulong)bVar19" (identifier "unaff_R15") (= "=") (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19"))) (; ";")) (expression_statement "(param_3 + 1)[(long)puVar8] = bVar19;" (assignment_expression "(param_3 + 1)[(long)puVar8] = bVar19" (subscript_expression "(param_3 + 1)[(long)puVar8]" (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")) ([ "[") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "(param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);" (assignment_expression "(param_3 + 1)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1)" (subscript_expression "(param_3 + 1)[(long)puVar20]" (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")) ([ "[") (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (] "]")) (= "=") (binary_expression "*(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 1)" (* "*") (cast_expression "(byte *)((long)puVar20 + uVar4 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + uVar4 + 1)" (( "(") (binary_expression "(long)puVar20 + uVar4 + 1" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "uVar4")) (+ "+") (number_literal "1")) () ")")))) (^ "^") (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 1)" (* "*") (cast_expression "(byte *)((long)puVar20 + lVar5 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + lVar5 + 1)" (( "(") (binary_expression "(long)puVar20 + lVar5 + 1" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "lVar5")) (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "(param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);" (assignment_expression "(param_3 + 2)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2)" (subscript_expression "(param_3 + 2)[(long)puVar20]" (parenthesized_expression "(param_3 + 2)" (( "(") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) () ")")) ([ "[") (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (] "]")) (= "=") (binary_expression "*(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 2)" (* "*") (cast_expression "(byte *)((long)puVar20 + uVar4 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + uVar4 + 2)" (( "(") (binary_expression "(long)puVar20 + uVar4 + 2" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "uVar4")) (+ "+") (number_literal "2")) () ")")))) (^ "^") (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 2)" (* "*") (cast_expression "(byte *)((long)puVar20 + lVar5 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + lVar5 + 2)" (( "(") (binary_expression "(long)puVar20 + lVar5 + 2" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "lVar5")) (+ "+") (number_literal "2")) () ")")))))) (; ";")) (expression_statement "(param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);" (assignment_expression "(param_3 + 3)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3)" (subscript_expression "(param_3 + 3)[(long)puVar20]" (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")")) ([ "[") (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (] "]")) (= "=") (binary_expression "*(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 3)" (* "*") (cast_expression "(byte *)((long)puVar20 + uVar4 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + uVar4 + 3)" (( "(") (binary_expression "(long)puVar20 + uVar4 + 3" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "uVar4")) (+ "+") (number_literal "3")) () ")")))) (^ "^") (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 3)" (* "*") (cast_expression "(byte *)((long)puVar20 + lVar5 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + lVar5 + 3)" (( "(") (binary_expression "(long)puVar20 + lVar5 + 3" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "lVar5")) (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "(param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);" (assignment_expression "(param_3 + 4)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4)" (subscript_expression "(param_3 + 4)[(long)puVar20]" (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")) ([ "[") (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (] "]")) (= "=") (binary_expression "*(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 4)" (* "*") (cast_expression "(byte *)((long)puVar20 + uVar4 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + uVar4 + 4)" (( "(") (binary_expression "(long)puVar20 + uVar4 + 4" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "uVar4")) (+ "+") (number_literal "4")) () ")")))) (^ "^") (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 4)" (* "*") (cast_expression "(byte *)((long)puVar20 + lVar5 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + lVar5 + 4)" (( "(") (binary_expression "(long)puVar20 + lVar5 + 4" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "lVar5")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "(param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);" (assignment_expression "(param_3 + 5)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5)" (subscript_expression "(param_3 + 5)[(long)puVar20]" (parenthesized_expression "(param_3 + 5)" (( "(") (binary_expression "param_3 + 5" (identifier "param_3") (+ "+") (number_literal "5")) () ")")) ([ "[") (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (] "]")) (= "=") (binary_expression "*(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 5)" (* "*") (cast_expression "(byte *)((long)puVar20 + uVar4 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + uVar4 + 5)" (( "(") (binary_expression "(long)puVar20 + uVar4 + 5" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "uVar4")) (+ "+") (number_literal "5")) () ")")))) (^ "^") (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 5)" (* "*") (cast_expression "(byte *)((long)puVar20 + lVar5 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + lVar5 + 5)" (( "(") (binary_expression "(long)puVar20 + lVar5 + 5" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "lVar5")) (+ "+") (number_literal "5")) () ")")))))) (; ";")) (expression_statement "(param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);" (assignment_expression "(param_3 + 6)[(long)puVar20] =\n                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6)" (subscript_expression "(param_3 + 6)[(long)puVar20]" (parenthesized_expression "(param_3 + 6)" (( "(") (binary_expression "param_3 + 6" (identifier "param_3") (+ "+") (number_literal "6")) () ")")) ([ "[") (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (] "]")) (= "=") (binary_expression "*(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6)" (pointer_expression "*(byte *)((long)puVar20 + uVar4 + 6)" (* "*") (cast_expression "(byte *)((long)puVar20 + uVar4 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + uVar4 + 6)" (( "(") (binary_expression "(long)puVar20 + uVar4 + 6" (binary_expression "(long)puVar20 + uVar4" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "uVar4")) (+ "+") (number_literal "6")) () ")")))) (^ "^") (pointer_expression "*(byte *)((long)puVar20 + lVar5 + 6)" (* "*") (cast_expression "(byte *)((long)puVar20 + lVar5 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar20 + lVar5 + 6)" (( "(") (binary_expression "(long)puVar20 + lVar5 + 6" (binary_expression "(long)puVar20 + lVar5" (cast_expression "(long)puVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar20")) (+ "+") (identifier "lVar5")) (+ "+") (number_literal "6")) () ")")))))) (; ";")) (} "}"))) (expression_statement "puVar14[-2] = (ulong)puVar8;" (assignment_expression "puVar14[-2] = (ulong)puVar8" (subscript_expression "puVar14[-2]" (identifier "puVar14") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(ulong)puVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puVar8"))) (; ";")) (expression_statement "puVar14 = puVar20;" (assignment_expression "puVar14 = puVar20" (identifier "puVar14") (= "=") (identifier "puVar20")) (; ";")) (} "}")))) (expression_statement "*param_4 = (long)puVar8;" (assignment_expression "*param_4 = (long)puVar8" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8"))) (; ";")) (expression_statement "puVar17 = puVar15;" (assignment_expression "puVar17 = puVar15" (identifier "puVar17") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar20 = puVar14;" (assignment_expression "puVar20 = puVar14" (identifier "puVar20") (= "=") (identifier "puVar14")) (; ";")) (} "}")))))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "*(undefined8 *)((long)puVar17 + -8) = 0x1004ea;" (assignment_expression "*(undefined8 *)((long)puVar17 + -8) = 0x1004ea" (pointer_expression "*(undefined8 *)((long)puVar17 + -8)" (* "*") (cast_expression "(undefined8 *)((long)puVar17 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar17 + -8)" (( "(") (binary_expression "(long)puVar17 + -8" (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x1004ea")) (; ";")) (expression_statement "puVar10 = (ulong *)((long)puVar17 + -0x10);" (assignment_expression "puVar10 = (ulong *)((long)puVar17 + -0x10)" (identifier "puVar10") (= "=") (cast_expression "(ulong *)((long)puVar17 + -0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar17 + -0x10)" (( "(") (binary_expression "(long)puVar17 + -0x10" (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17")) (+ "+") (number_literal "-0x10")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;" (assignment_expression "*(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4" (pointer_expression "*(undefined8 *)((long)puVar17 + -0x10)" (* "*") (cast_expression "(undefined8 *)((long)puVar17 + -0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar17 + -0x10)" (( "(") (binary_expression "(long)puVar17 + -0x10" (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x1004f4")) (; ";")) (expression_statement "*(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;" (assignment_expression "*(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff" (pointer_expression "*(undefined8 *)((long)puVar17 + -0x18)" (* "*") (cast_expression "(undefined8 *)((long)puVar17 + -0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar17 + -0x18)" (( "(") (binary_expression "(long)puVar17 + -0x18" (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x1004ff")) (; ";")) (expression_statement "(*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)\n      ;" (call_expression "(*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)" (parenthesized_expression "(*pcRam00000000001004ff)" (( "(") (pointer_expression "*pcRam00000000001004ff" (* "*") (identifier "pcRam00000000001004ff")) () ")")) (argument_list "(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)" (( "(") (pointer_expression "*(undefined8 *)((long)puVar17 + 0x18)" (* "*") (cast_expression "(undefined8 *)((long)puVar17 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar17 + 0x18)" (( "(") (binary_expression "(long)puVar17 + 0x18" (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17")) (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "unaff_R15") (, ",") (identifier "puVar8") (, ",") (identifier "uVar6") (, ",") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "pbVar7 = extraout_RDX_01;" (assignment_expression "pbVar7 = extraout_RDX_01" (identifier "pbVar7") (= "=") (identifier "extraout_RDX_01")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0010006a:\n  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (statement_identifier "LAB_0010006a") (: ":") (if_statement "if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (if "if") (parenthesized_expression "(*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)" (pointer_expression "*(long *)((long)puVar10 + 0x208)" (* "*") (cast_expression "(long *)((long)puVar10 + 0x208)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + 0x208)" (( "(") (binary_expression "(long)puVar10 + 0x208" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x208")) () ")")))) (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "*(undefined8 *)((long)puVar10 + -8) = 0x100513;" (assignment_expression "*(undefined8 *)((long)puVar10 + -8) = 0x100513" (pointer_expression "*(undefined8 *)((long)puVar10 + -8)" (* "*") (cast_expression "(undefined8 *)((long)puVar10 + -8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + -8)" (( "(") (binary_expression "(long)puVar10 + -8" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x100513")) (; ";")) (expression_statement "*pcVar9 = *pcVar9 + (char)pcVar9;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (binary_expression "*pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (+ "+") (cast_expression "(char)pcVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pcVar9")))) (; ";")) (expression_statement "*pcVar9 = *pcVar9 + (char)pcVar9;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (binary_expression "*pcVar9 + (char)pcVar9" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (+ "+") (cast_expression "(char)pcVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pcVar9")))) (; ";")) (expression_statement "*pcVar9 = *pcVar9 + (char)pbVar7;" (assignment_expression "*pcVar9 = *pcVar9 + (char)pbVar7" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (binary_expression "*pcVar9 + (char)pbVar7" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (+ "+") (cast_expression "(char)pbVar7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pbVar7")))) (; ";")) (expression_statement "iVar3 = (uint)pcVar9 + 0x42000000;" (assignment_expression "iVar3 = (uint)pcVar9 + 0x42000000" (identifier "iVar3") (= "=") (binary_expression "(uint)pcVar9 + 0x42000000" (cast_expression "(uint)pcVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar9")) (+ "+") (number_literal "0x42000000"))) (; ";")) (expression_statement "cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);" (assignment_expression "cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9)" (identifier "cVar1") (= "=") (binary_expression "(char)iVar3 - (0xbdffffff < (uint)pcVar9)" (cast_expression "(char)iVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar3")) (- "-") (parenthesized_expression "(0xbdffffff < (uint)pcVar9)" (( "(") (binary_expression "0xbdffffff < (uint)pcVar9" (number_literal "0xbdffffff") (< "<") (cast_expression "(uint)pcVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar9"))) () ")")))) (; ";")) (expression_statement "pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);" (assignment_expression "pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" (identifier "pcVar9") (= "=") (cast_expression "(char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (call_expression "CONCAT31((int3)((uint)iVar3 >> 8),cVar1)" (identifier "CONCAT31") (argument_list "((int3)((uint)iVar3 >> 8),cVar1)" (( "(") (call_expression "(int3)((uint)iVar3 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)iVar3 >> 8)" (( "(") (binary_expression "(uint)iVar3 >> 8" (cast_expression "(uint)iVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar3")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (identifier "cVar1") () ")")))))) (; ";")) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (+ "+") (identifier "cVar1"))) (; ";")) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (+ "+") (identifier "cVar1"))) (; ";")) (expression_statement "*pcVar9 = *pcVar9 + cVar1;" (assignment_expression "*pcVar9 = *pcVar9 + cVar1" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (binary_expression "*pcVar9 + cVar1" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (+ "+") (identifier "cVar1"))) (; ";")) (expression_statement "halt_baddata();" (call_expression "halt_baddata()" (identifier "halt_baddata") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention */

int function_1(type_1 *var_4,type_2 inlen,type_1 *var_6,type_2 *var_7,type_3 *var_8)

{
  long var_23;
  int var_10;
  type_4 uVar3;
  type_5 *var_14;
  type_5 *var_15;
  long var_2;
  type_2 var_21;
  type_3 *unaff_RBP;
  type_2 *var_3;
  type_6 var_20;
  type_2 unaff_R15;
  long var_1;
  void *g_pub;
  type_2 var_22;
  type_2 var_18;
  type_7 decode [3];
  type_2 hashOID [32];
  
  var_23 = *(long *)(var_1 + 0x28);
  var_3 = hashOID;
  for (var_2 = 0x20; var_2 != 0; var_2 = var_2 + -1) {
    *var_3 = 0;
    var_3 = var_3 + 1;
  }
  if (var_4 == (type_1 *)0x0) {
    var_5("in != NULL","src/pk/dsa/dsa_decrypt_key.c",0x26);
LAB_001000ad:
    var_5("out != NULL","src/pk/dsa/dsa_decrypt_key.c",0x27);
LAB_001000c5:
    var_5("outlen != NULL","src/pk/dsa/dsa_decrypt_key.c",0x28);
LAB_001000dd:
    var_5("key != NULL","src/pk/dsa/dsa_decrypt_key.c",0x29);
  }
  else {
    unaff_RBP = var_8;
    unaff_R15 = inlen;
    if (var_6 == (type_1 *)0x0) goto LAB_001000ad;
    if (var_7 == (type_2 *)0x0) goto LAB_001000c5;
    if (var_8 == (type_3 *)0x0) goto LAB_001000dd;
    var_10 = 0xf;
    if (var_8->type != 1) goto LAB_0010006a;
  }
  decode[0].type = LTC_ASN1_OBJECT_IDENTIFIER;
  decode[0].data = hashOID;
  decode[0].size = 0x20;
  decode[0].used = 0;
  var_10 = var_9(var_4);
  if ((var_10 == 0) || (var_10 == 0x15)) {
    uVar3 = var_11(hashOID,decode[0].size);
    var_10 = var_12(uVar3);
    if (var_10 == 0) {
      var_10 = (*_dsa_shared_secret)(&g_pub);
      if (var_10 == 0) {
        var_2 = (*_DAT_001010b0)(unaff_RBP->p);
        var_14 = (type_5 *)var_13(var_2 + 1);
        var_15 = (type_5 *)var_13(0x80);
        if ((var_14 == (type_5 *)0x0) || (var_15 == (type_5 *)0x0)) {
          if (var_14 != (type_5 *)0x0) {
            var_16(var_14);
          }
          if (var_15 != (type_5 *)0x0) {
            var_16(var_15);
          }
          (*_free)(g_pub);
          var_10 = 0xd;
        }
        else {
          decode[1].type = LTC_ASN1_INTEGER;
          decode[1].data = g_pub;
          decode[1].size = 1;
          decode[1].used = 0;
          decode[2].type = LTC_ASN1_OCTET_STRING;
          decode[2].size = 0x80;
          decode[2].used = 0;
          decode[2].data = var_15;
          var_10 = var_9(var_4,unaff_R15,decode,3,1);
          if (var_10 == 0) {
            var_2 = (*_DAT_001010b0)(unaff_RBP->p);
            var_22 = var_2 + 1;
            var_10 = var_17(unaff_RBP->var_22,g_pub,unaff_RBP,var_14,&var_22);
            if (var_10 == 0) {
              var_2 = (*_DAT_001010b0)(unaff_RBP->p);
              var_18 = var_2 + 1;
              if (0x80 < var_18) {
                var_18 = 0x80;
              }
              var_10 = var_19(uVar3,var_14,var_22,var_14,&var_18);
              if (var_10 == 0) {
                if (var_18 < decode[2].size) {
                  var_10 = 7;
                }
                else if (*var_7 < decode[2].size) {
                  *var_7 = decode[2].size;
                  var_10 = 6;
                }
                else {
                  var_22 = 0;
                  if (decode[2].size != 0) {
                    var_22 = 0;
                    var_20 = (type_6)decode[2].size & 7;
                    if ((decode[2].size & 7) == 0) goto LAB_00100435;
                    if (var_20 != 1) {
                      if (var_20 != 2) {
                        if (var_20 != 3) {
                          if (var_20 != 4) {
                            if (var_20 != 5) {
                              if (var_20 != 6) {
                                *var_6 = *var_14 ^ *var_15;
                              }
                              var_21 = (type_2)(var_20 != 6);
                              var_6[var_21] = var_14[var_21] ^ var_15[var_21];
                              var_22 = var_21 + 1;
                            }
                            var_6[var_22] = var_14[var_22] ^ var_15[var_22];
                            var_22 = var_22 + 1;
                          }
                          var_6[var_22] = var_14[var_22] ^ var_15[var_22];
                          var_22 = var_22 + 1;
                        }
                        var_6[var_22] = var_14[var_22] ^ var_15[var_22];
                        var_22 = var_22 + 1;
                      }
                      var_6[var_22] = var_14[var_22] ^ var_15[var_22];
                      var_22 = var_22 + 1;
                    }
                    var_6[var_22] = var_14[var_22] ^ var_15[var_22];
                    for (var_22 = var_22 + 1; decode[2].size != var_22; var_22 = var_22 + 8) {
LAB_00100435:
                      var_6[var_22] = var_14[var_22] ^ var_15[var_22];
                      var_6[var_22 + 1] = var_14[var_22 + 1] ^ var_15[var_22 + 1];
                      var_6[var_22 + 2] = var_14[var_22 + 2] ^ var_15[var_22 + 2];
                      var_6[var_22 + 3] = var_14[var_22 + 3] ^ var_15[var_22 + 3];
                      var_6[var_22 + 4] = var_14[var_22 + 4] ^ var_15[var_22 + 4];
                      var_6[var_22 + 5] = var_14[var_22 + 5] ^ var_15[var_22 + 5];
                      var_6[var_22 + 6] = var_14[var_22 + 6] ^ var_15[var_22 + 6];
                      var_6[var_22 + 7] = var_14[var_22 + 7] ^ var_15[var_22 + 7];
                    }
                  }
                  *var_7 = var_22;
                }
              }
            }
          }
          var_16(var_14);
          var_16(var_15);
          (*_free)(g_pub);
        }
      }
    }
    else {
      var_10 = 7;
    }
  }
LAB_0010006a:
  if (var_23 == *(long *)(var_1 + 0x28)) {
    return var_10;
  }
                    /* WARNING: Subroutine does not return */
  var_24();
}


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

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x00100587) overlaps instruction at (ram,0x00100586)
    */
/* WARNING: Removing unreachable block (ram,0x00100139) */
/* WARNING: Removing unreachable block (ram,0x00100515) */
/* WARNING: Removing unreachable block (ram,0x00100519) */
/* WARNING: Removing unreachable block (ram,0x00100504) */

void MASKED(long param_1,ulong param_2,byte *param_3,long *param_4,ulong *param_5)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  ulong uVar4;
  long lVar5;
  ulong uVar6;
  byte *pbVar7;
  byte *extraout_RDX;
  byte *extraout_RDX_00;
  ulong *puVar8;
  byte *extraout_RDX_01;
  char *pcVar9;
  ulong *puVar10;
  undefined8 *puVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  ulong *puVar14;
  ulong *puVar15;
  undefined8 *puVar16;
  ulong *puVar17;
  ulong *unaff_RBP;
  undefined8 *puVar18;
  byte bVar19;
  ulong unaff_R15;
  long in_FS_OFFSET;
  ulong auStack_2c0 [12];
  undefined4 auStack_25c [3];
  undefined8 local_250;
  undefined1 local_248 [32];
  undefined4 auStack_228 [2];
  ulong auStack_220 [2];
  undefined4 auStack_210 [2];
  ulong local_208 [2];
  undefined4 local_1f8 [8];
  ulong local_1d8;
  undefined4 auStack_1d0 [2];
  ulong auStack_1c8 [2];
  undefined4 local_1b8 [28];
  undefined8 local_148 [33];
  undefined8 local_40;
  ulong *puVar20;
  
  puVar11 = (undefined8 *)local_248;
  puVar12 = local_248;
  puVar13 = local_248;
  puVar10 = (ulong *)local_248;
  puVar14 = (ulong *)local_248;
  local_40 = *(undefined8 *)(in_FS_OFFSET + 0x28);
  puVar18 = local_148;
  for (lVar5 = 0x20; lVar5 != 0; lVar5 = lVar5 + -1) {
    *puVar18 = 0;
    puVar18 = puVar18 + 1;
  }
  if (param_1 == 0) {
    puVar11 = &local_250;
    local_250 = 0x1000ad;
LAB_001000ad:
    puVar12 = (undefined1 *)((long)puVar11 + -8);
    *(undefined8 *)((long)puVar11 + -8) = 0x1000c5;
LAB_001000c5:
    puVar13 = puVar12 + -8;
    *(undefined8 *)(puVar12 + -8) = 0x1000dd;
LAB_001000dd:
    puVar14 = (ulong *)(puVar13 + -8);
    *(undefined8 *)(puVar13 + -8) = 0x1000f5;
  }
  else {
    unaff_RBP = param_5;
    unaff_R15 = param_2;
    if (param_3 == (byte *)0x0) goto LAB_001000ad;
    if (param_4 == (long *)0x0) goto LAB_001000c5;
    if (param_5 == (ulong *)0x0) goto LAB_001000dd;
    pcVar9 = (char *)0xf;
    pbVar7 = param_3;
    if ((int)*param_5 != 1) goto LAB_0010006a;
  }
  *(undefined4 *)(puVar14 + 8) = 7;
  puVar14[9] = (ulong)(puVar14 + 0x20);
  puVar14[10] = 0x20;
  *(undefined4 *)(puVar14 + 0xb) = 0;
  puVar14[-1] = 0x100133;
  puVar14[-2] = 0x100154;
  *(undefined4 *)((long)puVar14 + 0xc) = 0;
  puVar10 = puVar14 + -3;
  puVar14[-3] = 0x10015f;
  puVar14[-4] = 0x100172;
  uVar2 = (*pcRam0000000000100172)(puVar14 + 2,puVar14[9],puVar14 + 8,1,1);
  pcVar9 = (char *)(ulong)uVar2;
  pbVar7 = extraout_RDX;
  if (uVar2 == 0) {
    uVar4 = unaff_RBP[3];
    puVar14[-4] = 0x100186;
    uVar4 = (*pcRam0000000000100186)(uVar4);
    puVar14[-4] = 0x10018f;
    puVar14[-2] = uVar4;
    puVar10 = puVar14 + -5;
    puVar14[-5] = 0x1001a1;
    puVar14[-4] = uVar4;
    if ((uVar4 == 0) || (uVar4 == 0)) {
      if (puVar14[-3] != 0) {
        puVar10 = puVar14 + -6;
        puVar14[-6] = 0x1002f3;
      }
      if (*(long *)((long)puVar10 + 8) != 0) {
        puVar16 = (undefined8 *)((long)puVar10 + -8);
        puVar10 = (ulong *)((long)puVar10 + -8);
        *puVar16 = 0x100305;
      }
      *(undefined8 *)((long)puVar10 + -8) = 0x100310;
      (*pcRam0000000000100310)();
      pcVar9 = (char *)0xd;
      pbVar7 = extraout_RDX_00;
    }
    else {
      *(undefined4 *)(puVar14 + 0xb) = 2;
      puVar14[0xc] = *puVar14;
      puVar14[0xd] = 1;
      *(undefined4 *)(puVar14 + 0xe) = 0;
      *(undefined4 *)(puVar14 + 0x13) = 5;
      puVar14[0x14] = puVar14[-4];
      puVar14[0x15] = 0x80;
      *(undefined4 *)(puVar14 + 0x16) = 0;
      uVar6 = 3;
      puVar14[-6] = 0x100231;
      pcVar9 = (char *)(uVar4 & 0xffffffff);
      puVar8 = puVar14 + 3;
      puVar17 = puVar14 + -6;
      puVar20 = (ulong *)(undefined1 *)0x1;
      if ((int)uVar4 == 0) {
        uVar4 = unaff_RBP[3];
        puVar14[-7] = 0x100245;
        lVar5 = (*pcRam0000000000100245)(uVar4,unaff_R15,puVar14 + 3,3,1);
        uVar4 = lVar5 + 1;
        *puVar14 = uVar4;
        uVar6 = puVar14[-4];
        puVar14[-7] = 0x10026c;
        pcVar9 = (char *)(uVar4 & 0xffffffff);
        puVar8 = unaff_RBP;
        puVar17 = puVar14 + -7;
        unaff_R15 = puVar14[-1];
        puVar20 = puVar14;
        if ((int)uVar4 == 0) {
          uVar4 = unaff_RBP[3];
          puVar14[-8] = 0x100280;
          lVar5 = (*pcRam0000000000100280)(uVar4,puVar14[-1],unaff_RBP,uVar6,puVar14);
          uVar4 = lVar5 + 1;
          if (0x80 < uVar4) {
            uVar4 = 0x80;
          }
          *puVar14 = uVar4;
          puVar8 = (ulong *)puVar14[-1];
          puVar15 = puVar14 + -8;
          puVar14[-8] = 0x1002b2;
          pcVar9 = (char *)(uVar4 & 0xffffffff);
          puVar17 = puVar14 + -8;
          unaff_R15 = uVar6;
          if ((int)uVar4 == 0) {
            puVar17 = (ulong *)puVar14[0x12];
            if ((ulong *)puVar14[-1] < puVar17) {
              pcVar9 = (char *)0x7;
              puVar17 = puVar14 + -8;
            }
            else if ((ulong *)*param_4 < puVar17) {
              *param_4 = (long)puVar17;
              pcVar9 = (char *)0x6;
              puVar17 = puVar14 + -8;
            }
            else {
              puVar14[-2] = 0;
              if (puVar17 == (ulong *)0x0) {
                puVar8 = (ulong *)0x0;
              }
              else {
                puVar8 = (ulong *)0x0;
                uVar2 = (uint)puVar17 & 7;
                if (((ulong)puVar17 & 7) == 0) goto LAB_00100435;
                if (uVar2 != 1) {
                  if (uVar2 != 2) {
                    if (uVar2 != 3) {
                      if (uVar2 != 4) {
                        if (uVar2 != 5) {
                          if (uVar2 != 6) {
                            *param_3 = *(byte *)puVar14[-6] ^ *(byte *)puVar14[-7];
                          }
                          uVar4 = (ulong)(uVar2 != 6);
                          param_3[uVar4] =
                               *(byte *)(puVar14[-6] + uVar4) ^ *(byte *)(puVar14[-7] + uVar4);
                          puVar8 = (ulong *)(uVar4 + 1);
                        }
                        param_3[(long)puVar8] =
                             *(byte *)(puVar14[-6] + (long)puVar8) ^
                             *(byte *)(puVar14[-7] + (long)puVar8);
                        puVar8 = (ulong *)((long)puVar8 + 1);
                      }
                      uVar6 = puVar14[-7];
                      param_3[(long)puVar8] =
                           *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(uVar6 + (long)puVar8);
                      puVar8 = (ulong *)((long)puVar8 + 1);
                    }
                    param_3[(long)puVar8] =
                         *(byte *)(puVar14[-6] + (long)puVar8) ^
                         *(byte *)(puVar14[-7] + (long)puVar8);
                    puVar8 = (ulong *)((long)puVar8 + 1);
                  }
                  unaff_R15 = puVar14[-6];
                  bVar19 = *(byte *)(unaff_R15 + (long)puVar8) ^
                           *(byte *)(puVar14[-7] + (long)puVar8);
                  puVar20 = (ulong *)(ulong)bVar19;
                  param_3[(long)puVar8] = bVar19;
                  puVar8 = (ulong *)((long)puVar8 + 1);
                }
                param_3[(long)puVar8] =
                     *(byte *)(puVar14[-6] + (long)puVar8) ^ *(byte *)(puVar14[-7] + (long)puVar8);
                for (puVar8 = (ulong *)((long)puVar8 + 1); puVar17 != puVar8; puVar8 = puVar8 + 1) {
LAB_00100435:
                  uVar4 = puVar14[-6];
                  lVar5 = puVar14[-7];
                  bVar19 = *(byte *)(uVar4 + (long)puVar8) ^ *(byte *)(lVar5 + (long)puVar8);
                  uVar6 = (ulong)bVar19;
                  param_3[(long)puVar8] = bVar19;
                  puVar20 = (ulong *)((long)puVar8 + 1);
                  bVar19 = *(byte *)(uVar4 + 1 + (long)puVar8) ^ *(byte *)(lVar5 + 1 + (long)puVar8)
                  ;
                  unaff_R15 = (ulong)bVar19;
                  (param_3 + 1)[(long)puVar8] = bVar19;
                  (param_3 + 1)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 1) ^ *(byte *)((long)puVar20 + lVar5 + 1);
                  (param_3 + 2)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 2) ^ *(byte *)((long)puVar20 + lVar5 + 2);
                  (param_3 + 3)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 3) ^ *(byte *)((long)puVar20 + lVar5 + 3);
                  (param_3 + 4)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 4) ^ *(byte *)((long)puVar20 + lVar5 + 4);
                  (param_3 + 5)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 5) ^ *(byte *)((long)puVar20 + lVar5 + 5);
                  (param_3 + 6)[(long)puVar20] =
                       *(byte *)((long)puVar20 + uVar4 + 6) ^ *(byte *)((long)puVar20 + lVar5 + 6);
                }
                puVar14[-2] = (ulong)puVar8;
                puVar14 = puVar20;
              }
              *param_4 = (long)puVar8;
              puVar17 = puVar15;
              puVar20 = puVar14;
            }
          }
        }
      }
      *(undefined8 *)((long)puVar17 + -8) = 0x1004ea;
      puVar10 = (ulong *)((long)puVar17 + -0x10);
      *(undefined8 *)((long)puVar17 + -0x10) = 0x1004f4;
      *(undefined8 *)((long)puVar17 + -0x18) = 0x1004ff;
      (*pcRam00000000001004ff)(*(undefined8 *)((long)puVar17 + 0x18),unaff_R15,puVar8,uVar6,puVar20)
      ;
      pbVar7 = extraout_RDX_01;
    }
  }
LAB_0010006a:
  if (*(long *)((long)puVar10 + 0x208) == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
  *(undefined8 *)((long)puVar10 + -8) = 0x100513;
  *pcVar9 = *pcVar9 + (char)pcVar9;
  *pcVar9 = *pcVar9 + (char)pcVar9;
  *pcVar9 = *pcVar9 + (char)pbVar7;
  iVar3 = (uint)pcVar9 + 0x42000000;
  cVar1 = (char)iVar3 - (0xbdffffff < (uint)pcVar9);
  pcVar9 = (char *)(ulong)CONCAT31((int3)((uint)iVar3 >> 8),cVar1);
  *pcVar9 = *pcVar9 + cVar1;
  *pcVar9 = *pcVar9 + cVar1;
  *pcVar9 = *pcVar9 + cVar1;
                    /* WARNING: Bad instruction - Truncating control flow here */
  halt_baddata();
}

