
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bool elfcpp::Elf_recognizer::is_valid_header
               (uchar *ehdr_buf,off_t bufsize,int *size,bool *big_endian,string *error)

{
  size_type __dnew;
  char buf [256];
  
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4
FUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,
            undefined4 *param_6)

{
  char *pcVar1;
  size_t sVar2;
  char **ppcVar3;
  int iVar4;
  uint uVar5;
  char **ppcVar6;
  undefined4 *puVar7;
  uint uVar8;
  undefined4 *puVar9;
  bool bVar10;
  byte bVar11;
  char **local_140;
  char *local_138;
  char **local_134;
  char *local_130;
  char *local_12c [2];
  char acStack_123 [7];
  char *local_11c [66];
  undefined4 uStack_14;
  
  bVar11 = 0;
  uStack_14 = 0x2565f0;
  if ((int)(uint)(0xf < param_2) <= -param_3) {
LAB_002567d0:
    pcVar1 = "ELF file too short";
LAB_002567d9:
    pcVar1 = (char *)gettext(pcVar1);
    sVar2 = strlen(pcVar1);
    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);
    return 0;
  }
  uVar5 = (uint)*(byte *)(param_1 + 6);
  if (uVar5 == 1) {
    uVar5 = (uint)*(byte *)(param_1 + 4);
    if (uVar5 == 0) {
      pcVar1 = "invalid ELF class 0";
      goto LAB_002567d9;
    }
    if (1 < uVar5 - 1) {
      pcVar1 = (char *)gettext("unsupported ELF class %d");
      snprintf((char *)local_11c,0x100,pcVar1,uVar5);
      ppcVar3 = local_11c;
      do {
        ppcVar6 = ppcVar3;
        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;
        uVar5 = uVar8 & 0x80808080;
        ppcVar3 = ppcVar6 + 1;
      } while (uVar5 == 0);
      bVar10 = (uVar8 & 0x8080) == 0;
      if (bVar10) {
        uVar5 = uVar5 >> 0x10;
      }
      if (bVar10) {
        ppcVar3 = (char **)((int)ppcVar6 + 6);
      }
      pcVar1 = (char *)((int)ppcVar3 +
                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));
      local_134 = local_12c;
      local_138 = pcVar1;
      if (pcVar1 < (char *)0x10) {
        if (pcVar1 == (char *)0x1) {
          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);
        }
        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;
      }
      else {
        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);
        local_12c[0] = local_138;
LAB_00256a90:
        if (pcVar1 < (char *)0x4) {
          if (pcVar1 != (char *)0x0) {
            *(undefined1 *)local_134 = local_11c[0]._0_1_;
            if (((uint)pcVar1 & 2) != 0) {
              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =
                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));
            }
          }
        }
        else {
          *local_134 = local_11c[0];
          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =
               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));
          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);
          puVar7 = (undefined4 *)((int)local_11c - iVar4);
          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);
          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
            *puVar9 = *puVar7;
            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;
            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;
          }
        }
      }
      *(char *)((int)local_134 + (int)local_138) = '\0';
      ppcVar3 = (char **)*param_6;
      local_130 = local_138;
      if (local_134 == local_12c) {
LAB_002568c9:
        local_140 = local_12c;
        local_138 = local_130;
        if (local_130 != (char *)0x0) {
          if (local_130 == (char *)0x1) {
            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;
            ppcVar3 = (char **)*param_6;
          }
          else {
            memcpy(ppcVar3,local_140,(size_t)local_130);
            ppcVar3 = (char **)*param_6;
          }
        }
        param_6[1] = local_130;
        *(char *)((int)ppcVar3 + (int)local_130) = '\0';
        pcVar1 = local_12c[0];
        goto LAB_0025679c;
      }
      goto LAB_00256751;
    }
    uVar8 = (uint)*(byte *)(param_1 + 5);
    if (uVar8 == 0) {
      pcVar1 = "invalid ELF data encoding";
      goto LAB_002567d9;
    }
    if (uVar8 - 1 < 2) {
      *(bool *)param_5 = uVar8 == 2;
      if (uVar5 == 1) {
        if (-param_3 < (int)(uint)(0x33 < param_2)) {
          *param_4 = 0x20;
          return 1;
        }
      }
      else if (-param_3 < (int)(uint)(0x3f < param_2)) {
        *param_4 = 0x40;
        return 1;
      }
      goto LAB_002567d0;
    }
    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");
    snprintf((char *)local_11c,0x100,pcVar1,uVar8);
    local_134 = local_12c;
    ppcVar3 = local_11c;
    do {
      ppcVar6 = ppcVar3;
      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;
      uVar5 = uVar8 & 0x80808080;
      ppcVar3 = ppcVar6 + 1;
    } while (uVar5 == 0);
    bVar10 = (uVar8 & 0x8080) == 0;
    if (bVar10) {
      uVar5 = uVar5 >> 0x10;
    }
    if (bVar10) {
      ppcVar3 = (char **)((int)ppcVar6 + 6);
    }
    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)
                     );
    local_138 = pcVar1;
    if (pcVar1 < (char *)0x10) {
      if (pcVar1 == (char *)0x1) {
        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);
      }
      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;
    }
    else {
      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);
      local_12c[0] = local_138;
LAB_00256c40:
      if (pcVar1 < (char *)0x4) {
        if (pcVar1 != (char *)0x0) {
          *(undefined1 *)local_134 = local_11c[0]._0_1_;
          if (((uint)pcVar1 & 2) != 0) {
            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =
                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));
          }
        }
      }
      else {
        *local_134 = local_11c[0];
        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =
             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));
        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);
        puVar7 = (undefined4 *)((int)local_11c - iVar4);
        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);
        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
          *puVar9 = *puVar7;
          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;
          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;
        }
      }
    }
    local_140 = local_12c;
    *(char *)((int)local_134 + (int)local_138) = '\0';
    ppcVar3 = (char **)*param_6;
    local_130 = local_138;
    if (local_134 == local_140) goto LAB_002568c9;
    if (ppcVar3 != (char **)(param_6 + 2)) {
      pcVar1 = (char *)param_6[2];
      *param_6 = local_134;
      param_6[1] = local_138;
      param_6[2] = local_12c[0];
      local_134 = ppcVar3;
      goto joined_r0x00256bac;
    }
    *param_6 = local_134;
    param_6[1] = local_138;
    param_6[2] = local_12c[0];
  }
  else {
    if (uVar5 == 0) {
      pcVar1 = "invalid ELF version 0";
      goto LAB_002567d9;
    }
    pcVar1 = (char *)gettext("unsupported ELF version %d");
    snprintf((char *)local_11c,0x100,pcVar1,uVar5);
    ppcVar3 = local_11c;
    do {
      ppcVar6 = ppcVar3;
      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;
      uVar5 = uVar8 & 0x80808080;
      ppcVar3 = ppcVar6 + 1;
    } while (uVar5 == 0);
    bVar10 = (uVar8 & 0x8080) == 0;
    if (bVar10) {
      uVar5 = uVar5 >> 0x10;
    }
    if (bVar10) {
      ppcVar3 = (char **)((int)ppcVar6 + 6);
    }
    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)
                     );
    local_134 = local_12c;
    local_138 = pcVar1;
    if (pcVar1 < (char *)0x10) {
      if (pcVar1 == (char *)0x1) {
        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);
      }
      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;
    }
    else {
      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);
      local_12c[0] = local_138;
LAB_0025699d:
      if (pcVar1 < (char *)0x4) {
        if (pcVar1 != (char *)0x0) {
          *(undefined1 *)local_134 = local_11c[0]._0_1_;
          if (((uint)pcVar1 & 2) != 0) {
            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =
                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));
          }
        }
      }
      else {
        *local_134 = local_11c[0];
        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =
             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));
        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);
        puVar7 = (undefined4 *)((int)local_11c - iVar4);
        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);
        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
          *puVar9 = *puVar7;
          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;
          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;
        }
      }
    }
    *(char *)((int)local_134 + (int)local_138) = '\0';
    ppcVar3 = (char **)*param_6;
    local_130 = local_138;
    if (local_134 == local_12c) {
      pcVar1 = local_138;
      if (local_138 != (char *)0x0) {
        if (local_138 == (char *)0x1) {
          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;
          ppcVar3 = (char **)*param_6;
        }
        else {
          memcpy(ppcVar3,local_12c,(size_t)local_138);
          ppcVar3 = (char **)*param_6;
          pcVar1 = local_130;
        }
      }
      param_6[1] = pcVar1;
      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';
      pcVar1 = local_12c[0];
      goto LAB_0025679c;
    }
LAB_00256751:
    local_138 = local_130;
    if (ppcVar3 == (char **)(param_6 + 2)) {
      *param_6 = local_134;
      param_6[1] = local_130;
      param_6[2] = local_12c[0];
    }
    else {
      pcVar1 = (char *)param_6[2];
      *param_6 = local_134;
      param_6[1] = local_130;
      param_6[2] = local_12c[0];
      local_134 = ppcVar3;
joined_r0x00256bac:
      if (local_134 != (char **)0x0) goto LAB_0025679c;
    }
  }
  local_140 = local_12c;
  local_134 = local_140;
  pcVar1 = local_12c[0];
LAB_0025679c:
  local_12c[0] = pcVar1;
  local_140 = local_12c;
  local_130 = (char *)0x0;
  *(undefined1 *)local_134 = 0;
  if (local_134 == local_140) {
    return 0;
  }
  FUN_003ae080(local_134);
  return 0;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
MOV ESI,0xf
PUSH EBX
CALL 0x00050b50
ADD EBX,0x393a10
SUB ESP,0x13c
MOV ECX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0x8]
CMP ESI,ECX
MOV ESI,0x0
SBB ESI,EDX
JGE 0x002567d0
MOVZX ESI,byte ptr [EDI + 0x6]
CMP ESI,0x1
JNZ 0x00256690
MOVZX ESI,byte ptr [EDI + 0x4]
TEST ESI,ESI
JZ 0x00256918
LEA EAX,[ESI + -0x1]
CMP EAX,0x1
JA 0x00256810
MOVZX EDI,byte ptr [EDI + 0x5]
TEST EDI,EDI
JZ 0x00256a30
LEA EAX,[EDI + -0x1]
CMP EAX,0x1
JA 0x00256ac0
CMP EDI,0x2
MOV EDI,dword ptr [EBP + 0x18]
SETZ byte ptr [EDI]
CMP ESI,0x1
JZ 0x00256bc0
MOV ESI,0x3f
MOV EAX,0x0
CMP ESI,ECX
SBB EAX,EDX
JGE 0x002567d0
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EAX],0x40
MOV EAX,0x1
JMP 0x002567c5
TEST ESI,ESI
JZ 0x00256800
SUB ESP,0xc
LEA EAX,[EBX + 0xffe9dca1]
LEA EDI,[EBP + 0xfffffee8]
PUSH EAX
CALL 0x00039440
PUSH ESI
MOV ESI,EDI
PUSH EAX
PUSH 0x100
PUSH EDI
CALL 0x00039980
LEA EAX,[EBP + 0xfffffed8]
MOV dword ptr [EBP + 0xfffffed0],EAX
MOV ECX,EAX
MOV EDX,dword ptr [ESI]
ADD ESI,0x4
LEA EAX,[EDX + 0xfefefeff]
NOT EDX
AND EAX,EDX
AND EAX,0x80808080
JZ 0x002566ca
MOV EDX,EAX
MOV dword ptr [EBP + 0xfffffec4],ECX
SHR EDX,0x10
TEST EAX,0x8080
CMOVZ EAX,EDX
LEA EDX,[ESI + 0x2]
CMOVZ ESI,EDX
MOV ECX,EAX
ADD CL,AL
SBB ESI,0x3
ADD ESP,0x20
SUB ESI,EDI
MOV dword ptr [EBP + 0xfffffecc],ESI
CMP ESI,0xf
JA 0x00256970
CMP ESI,0x1
JNZ 0x00256960
MOVZX EAX,byte ptr [EBP + 0xfffffee8]
MOV byte ptr [EBP + 0xfffffed8],AL
MOV EAX,dword ptr [EBP + 0xfffffec4]
MOV dword ptr [EBP + 0xfffffed4],ESI
MOV byte ptr [EAX + ESI*0x1],0x0
MOV EAX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0xfffffed0]
MOV EAX,dword ptr [EAX]
CMP EDX,dword ptr [EBP + 0xfffffec4]
JZ 0x002569d0
MOV ECX,dword ptr [EBP + 0x1c]
MOV EDI,dword ptr [EBP + 0xfffffed8]
MOV ESI,dword ptr [EBP + 0xfffffed4]
ADD ECX,0x8
CMP EAX,ECX
JZ 0x00256a20
MOV ECX,dword ptr [EBP + 0x1c]
MOV ECX,dword ptr [ECX + 0x8]
MOV dword ptr [EBP + 0xfffffec0],ECX
MOV ECX,dword ptr [EBP + 0x1c]
MOV dword ptr [ECX],EDX
MOV dword ptr [ECX + 0x4],ESI
MOV dword ptr [ECX + 0x8],EDI
TEST EAX,EAX
JZ 0x00256940
MOV EDI,dword ptr [EBP + 0xfffffec0]
MOV dword ptr [EBP + 0xfffffed0],EAX
MOV dword ptr [EBP + 0xfffffed8],EDI
MOV dword ptr [EBP + 0xfffffed4],0x0
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EBP + 0xfffffed0]
CMP EAX,dword ptr [EBP + 0xfffffec4]
JZ 0x002567c3
SUB ESP,0xc
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
XOR EAX,EAX
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EAX,[EBX + 0xffe9dc78]
PUSH EAX
CALL 0x00039440
MOV dword ptr [ESP],EAX
MOV ESI,EAX
CALL 0x00039330
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [EBP + 0x1c]
PUSH ESI
PUSH dword ptr [EAX + 0x4]
PUSH 0x0
PUSH EAX
CALL 0x003b6cc0
ADD ESP,0x20
JMP 0x002567c3
SUB ESP,0xc
LEA EAX,[EBX + 0xffe9dc8b]
JMP 0x002567d9
SUB ESP,0xc
LEA EAX,[EBX + 0xffe9dcd0]
LEA EDI,[EBP + 0xfffffee8]
PUSH EAX
CALL 0x00039440
PUSH ESI
MOV ESI,EDI
PUSH EAX
PUSH 0x100
PUSH EDI
CALL 0x00039980
LEA EAX,[EBP + 0xfffffed8]
MOV dword ptr [EBP + 0xfffffed0],EAX
MOV ECX,EAX
MOV EDX,dword ptr [ESI]
ADD ESI,0x4
LEA EAX,[EDX + 0xfefefeff]
NOT EDX
AND EAX,EDX
AND EAX,0x80808080
JZ 0x00256842
MOV EDX,EAX
MOV dword ptr [EBP + 0xfffffec4],ECX
SHR EDX,0x10
TEST EAX,0x8080
CMOVZ EAX,EDX
LEA EDX,[ESI + 0x2]
CMOVZ ESI,EDX
MOV ECX,EAX
ADD CL,AL
SBB ESI,0x3
ADD ESP,0x20
SUB ESI,EDI
MOV dword ptr [EBP + 0xfffffecc],ESI
CMP ESI,0xf
JA 0x00256bf0
CMP ESI,0x1
JNZ 0x00256a78
MOVZX EAX,byte ptr [EBP + 0xfffffee8]
MOV byte ptr [EBP + 0xfffffed8],AL
MOV EAX,dword ptr [EBP + 0xfffffec4]
MOV dword ptr [EBP + 0xfffffed4],ESI
MOV byte ptr [EAX + ESI*0x1],0x0
MOV EAX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0xfffffed0]
MOV EAX,dword ptr [EAX]
CMP EDX,dword ptr [EBP + 0xfffffec4]
JNZ 0x00256751
MOV EDX,dword ptr [EBP + 0xfffffed4]
TEST EDX,EDX
JZ 0x00256900
CMP EDX,0x1
JZ 0x00256d22
SUB ESP,0x4
PUSH EDX
PUSH dword ptr [EBP + 0xfffffec4]
PUSH EAX
CALL 0x000392d0
MOV EAX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0xfffffed4]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
LEA ESI,[ESI]
MOV EDI,dword ptr [EBP + 0x1c]
MOV dword ptr [EDI + 0x4],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EBP + 0xfffffed0]
JMP 0x0025679c
SUB ESP,0xc
LEA EAX,[EBX + 0xffe9dcbc]
JMP 0x002567d9
MOV EAX,dword ptr [EBP + 0x1c]
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x4],ECX
MOV dword ptr [EAX + 0x8],EDI
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + 0xfffffec4]
MOV dword ptr [EBP + 0xfffffed0],EAX
LEA EAX,[EBP + 0xfffffed8]
MOV dword ptr [EBP + 0xfffffec4],EAX
JMP 0x0025679c
MOV EAX,dword ptr [EBP + 0xfffffec4]
TEST ESI,ESI
JZ 0x00256730
JMP 0x0025699d
SUB ESP,0x4
LEA EAX,[EBP + 0xfffffecc]
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + 0xfffffed0]
PUSH EAX
CALL 0x003b5790
MOV EDX,dword ptr [EBP + 0xfffffecc]
ADD ESP,0x10
MOV dword ptr [EBP + 0xfffffed0],EAX
MOV dword ptr [EBP + 0xfffffed8],EDX
CMP ESI,0x4
JNC 0x00256a40
TEST ESI,ESI
JZ 0x002569bb
MOVZX EDX,byte ptr [EDI]
MOV byte ptr [EAX],DL
TEST ESI,0x2
JNZ 0x00256d3b
MOV ESI,dword ptr [EBP + 0xfffffecc]
MOV EAX,dword ptr [EBP + 0xfffffed0]
JMP 0x00256730
MOV EDX,dword ptr [EBP + 0xfffffed4]
TEST EDX,EDX
JZ 0x00256a08
CMP EDX,0x1
JZ 0x00256cd8
SUB ESP,0x4
PUSH EDX
PUSH dword ptr [EBP + 0xfffffec4]
PUSH EAX
CALL 0x000392d0
MOV EAX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0xfffffed4]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
LEA ESI,[ESI]
MOV ECX,dword ptr [EBP + 0x1c]
MOV dword ptr [ECX + 0x4],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EBP + 0xfffffed0]
JMP 0x0025679c
MOV EAX,dword ptr [EBP + 0x1c]
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x4],ESI
MOV dword ptr [EAX + 0x8],EDI
JMP 0x00256940
SUB ESP,0xc
LEA EAX,[EBX + 0xffe9dce9]
JMP 0x002567d9
MOV EDX,dword ptr [EBP + 0xfffffee8]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [EBP + ESI*0x1 + 0xfffffee4]
MOV dword ptr [EAX + ESI*0x1 + -0x4],EDX
LEA EDX,[EAX + 0x4]
AND EDX,0xfffffffc
SUB EAX,EDX
MOV ECX,EAX
MOV EAX,EDI
MOV EDI,EDX
SUB EAX,ECX
ADD ECX,ESI
SHR ECX,0x2
MOV ESI,EAX
MOVSD.REP ES:EDI,ESI
JMP 0x002569bb
MOV EAX,dword ptr [EBP + 0xfffffec4]
TEST ESI,ESI
JZ 0x002568a8
LEA ESI,[ESI]
LEA ESI,[ESI]
CMP ESI,0x4
JNC 0x00256ca0
TEST ESI,ESI
JZ 0x00256aae
MOVZX EDX,byte ptr [EDI]
MOV byte ptr [EAX],DL
TEST ESI,0x2
JNZ 0x00256d4a
MOV ESI,dword ptr [EBP + 0xfffffecc]
MOV EAX,dword ptr [EBP + 0xfffffed0]
JMP 0x002568a8
SUB ESP,0xc
LEA EAX,[EBX + 0xffe9dd04]
PUSH EAX
CALL 0x00039440
PUSH EDI
LEA EDI,[EBP + 0xfffffee8]
PUSH EAX
MOV ESI,EDI
PUSH 0x100
PUSH EDI
CALL 0x00039980
LEA EAX,[EBP + 0xfffffed8]
MOV dword ptr [EBP + 0xfffffed0],EAX
MOV ECX,EAX
MOV EDX,dword ptr [ESI]
ADD ESI,0x4
LEA EAX,[EDX + 0xfefefeff]
NOT EDX
AND EAX,EDX
AND EAX,0x80808080
JZ 0x00256af2
MOV EDX,EAX
MOV dword ptr [EBP + 0xfffffec4],ECX
SHR EDX,0x10
TEST EAX,0x8080
CMOVZ EAX,EDX
LEA EDX,[ESI + 0x2]
CMOVZ ESI,EDX
MOV ECX,EAX
ADD CL,AL
SBB ESI,0x3
ADD ESP,0x20
SUB ESI,EDI
MOV dword ptr [EBP + 0xfffffecc],ESI
CMP ESI,0xf
JA 0x00256c70
CMP ESI,0x1
JNZ 0x00256c28
MOVZX EAX,byte ptr [EBP + 0xfffffee8]
MOV byte ptr [EBP + 0xfffffed8],AL
MOV EAX,dword ptr [EBP + 0xfffffec4]
MOV dword ptr [EBP + 0xfffffed4],ESI
MOV byte ptr [EAX + ESI*0x1],0x0
MOV EAX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0xfffffed0]
MOV EAX,dword ptr [EAX]
CMP EDX,dword ptr [EBP + 0xfffffec4]
JZ 0x002568c9
MOV ESI,dword ptr [EBP + 0x1c]
MOV ECX,dword ptr [EBP + 0xfffffed4]
MOV EDI,dword ptr [EBP + 0xfffffed8]
ADD ESI,0x8
CMP EAX,ESI
JZ 0x00256930
MOV ESI,dword ptr [EBP + 0x1c]
MOV ESI,dword ptr [ESI + 0x8]
MOV dword ptr [EBP + 0xfffffec0],ESI
MOV ESI,dword ptr [EBP + 0x1c]
MOV dword ptr [ESI],EDX
MOV dword ptr [ESI + 0x4],ECX
MOV dword ptr [ESI + 0x8],EDI
TEST EAX,EAX
JNZ 0x0025678a
JMP 0x00256940
MOV ESI,0x33
MOV EAX,0x0
CMP ESI,ECX
SBB EAX,EDX
JGE 0x002567d0
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EAX],0x20
MOV EAX,0x1
JMP 0x002567c5
SUB ESP,0x4
LEA EAX,[EBP + 0xfffffecc]
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + 0xfffffed0]
PUSH EAX
CALL 0x003b5790
MOV EDX,dword ptr [EBP + 0xfffffecc]
ADD ESP,0x10
MOV dword ptr [EBP + 0xfffffed0],EAX
MOV dword ptr [EBP + 0xfffffed8],EDX
JMP 0x00256a90
MOV EAX,dword ptr [EBP + 0xfffffec4]
TEST ESI,ESI
JZ 0x00256b58
LEA ESI,[ESI]
LEA ESI,[ESI]
CMP ESI,0x4
JNC 0x00256cf1
TEST ESI,ESI
JZ 0x00256c5e
MOVZX EDX,byte ptr [EDI]
MOV byte ptr [EAX],DL
TEST ESI,0x2
JNZ 0x00256d59
MOV ESI,dword ptr [EBP + 0xfffffecc]
MOV EAX,dword ptr [EBP + 0xfffffed0]
JMP 0x00256b58
SUB ESP,0x4
LEA EAX,[EBP + 0xfffffecc]
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + 0xfffffed0]
PUSH EAX
CALL 0x003b5790
MOV EDX,dword ptr [EBP + 0xfffffecc]
ADD ESP,0x10
MOV dword ptr [EBP + 0xfffffed0],EAX
MOV dword ptr [EBP + 0xfffffed8],EDX
JMP 0x00256c40
MOV EDX,dword ptr [EBP + 0xfffffee8]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [EBP + ESI*0x1 + 0xfffffee4]
MOV dword ptr [EAX + ESI*0x1 + -0x4],EDX
LEA EDX,[EAX + 0x4]
AND EDX,0xfffffffc
SUB EAX,EDX
MOV ECX,EAX
MOV EAX,EDI
MOV EDI,EDX
SUB EAX,ECX
ADD ECX,ESI
SHR ECX,0x2
MOV ESI,EAX
MOVSD.REP ES:EDI,ESI
JMP 0x00256aae
MOVZX EDX,byte ptr [EBP + 0xfffffed8]
MOV byte ptr [EAX],DL
MOV EAX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0xfffffed4]
MOV EAX,dword ptr [EAX]
JMP 0x00256a08
MOV EDX,dword ptr [EBP + 0xfffffee8]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [EBP + ESI*0x1 + 0xfffffee4]
MOV dword ptr [EAX + ESI*0x1 + -0x4],EDX
LEA EDX,[EAX + 0x4]
AND EDX,0xfffffffc
SUB EAX,EDX
MOV ECX,EAX
MOV EAX,EDI
MOV EDI,EDX
SUB EAX,ECX
ADD ECX,ESI
SHR ECX,0x2
MOV ESI,EAX
MOVSD.REP ES:EDI,ESI
JMP 0x00256c5e
MOVZX EDX,byte ptr [EBP + 0xfffffed8]
MOV byte ptr [EAX],DL
MOV EAX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0xfffffed4]
MOV EAX,dword ptr [EAX]
JMP 0x00256900
MOVZX EDX,word ptr [EDI + ESI*0x1 + -0x2]
MOV word ptr [EAX + ESI*0x1 + -0x2],DX
JMP 0x002569bb
MOVZX EDX,word ptr [EDI + ESI*0x1 + -0x2]
MOV word ptr [EAX + ESI*0x1 + -0x2],DX
JMP 0x00256aae
MOVZX EDX,word ptr [EDI + ESI*0x1 + -0x2]
MOV word ptr [EAX + ESI*0x1 + -0x2],DX
JMP 0x00256c5e
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4\nFUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char **ppcVar3;\n  int iVar4;\n  uint uVar5;\n  char **ppcVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  bool bVar10;\n  byte bVar11;\n  char **local_140;\n  char *local_138;\n  char **local_134;\n  char *local_130;\n  char *local_12c [2];\n  char acStack_123 [7];\n  char *local_11c [66];\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x2565f0;\n  if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }\n  uVar5 = (uint)*(byte *)(param_1 + 6);\n  if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }\n  local_140 = local_12c;\n  local_134 = local_140;\n  pcVar1 = local_12c[0];\nLAB_0025679c:\n  local_12c[0] = pcVar1;\n  local_140 = local_12c;\n  local_130 = (char *)0x0;\n  *(undefined1 *)local_134 = 0;\n  if (local_134 == local_140) {\n    return 0;\n  }\n  FUN_003ae080(local_134);\n  return 0;\n}\n\n" comment (function_definition "undefined4\nFUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char **ppcVar3;\n  int iVar4;\n  uint uVar5;\n  char **ppcVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  bool bVar10;\n  byte bVar11;\n  char **local_140;\n  char *local_138;\n  char **local_134;\n  char *local_130;\n  char *local_12c [2];\n  char acStack_123 [7];\n  char *local_11c [66];\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x2565f0;\n  if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }\n  uVar5 = (uint)*(byte *)(param_1 + 6);\n  if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }\n  local_140 = local_12c;\n  local_134 = local_140;\n  pcVar1 = local_12c[0];\nLAB_0025679c:\n  local_12c[0] = pcVar1;\n  local_140 = local_12c;\n  local_130 = (char *)0x0;\n  *(undefined1 *)local_134 = 0;\n  if (local_134 == local_140) {\n    return 0;\n  }\n  FUN_003ae080(local_134);\n  return 0;\n}" type_identifier (function_declarator "FUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)" identifier (parameter_list "(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  size_t sVar2;\n  char **ppcVar3;\n  int iVar4;\n  uint uVar5;\n  char **ppcVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  bool bVar10;\n  byte bVar11;\n  char **local_140;\n  char *local_138;\n  char **local_134;\n  char *local_130;\n  char *local_12c [2];\n  char acStack_123 [7];\n  char *local_11c [66];\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x2565f0;\n  if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }\n  uVar5 = (uint)*(byte *)(param_1 + 6);\n  if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }\n  local_140 = local_12c;\n  local_134 = local_140;\n  pcVar1 = local_12c[0];\nLAB_0025679c:\n  local_12c[0] = pcVar1;\n  local_140 = local_12c;\n  local_130 = (char *)0x0;\n  *(undefined1 *)local_134 = 0;\n  if (local_134 == local_140) {\n    return 0;\n  }\n  FUN_003ae080(local_134);\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char **ppcVar3;" primitive_type (pointer_declarator "**ppcVar3" * (pointer_declarator "*ppcVar3" * identifier)) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char **ppcVar6;" primitive_type (pointer_declarator "**ppcVar6" * (pointer_declarator "*ppcVar6" * identifier)) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "char **local_140;" primitive_type (pointer_declarator "**local_140" * (pointer_declarator "*local_140" * identifier)) ;) (declaration "char *local_138;" primitive_type (pointer_declarator "*local_138" * identifier) ;) (declaration "char **local_134;" primitive_type (pointer_declarator "**local_134" * (pointer_declarator "*local_134" * identifier)) ;) (declaration "char *local_130;" primitive_type (pointer_declarator "*local_130" * identifier) ;) (declaration "char *local_12c [2];" primitive_type (pointer_declarator "*local_12c [2]" * (array_declarator "local_12c [2]" identifier [ number_literal ])) ;) (declaration "char acStack_123 [7];" primitive_type (array_declarator "acStack_123 [7]" identifier [ number_literal ]) ;) (declaration "char *local_11c [66];" primitive_type (pointer_declarator "*local_11c [66]" * (array_declarator "local_11c [66]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x2565f0;" (assignment_expression "uStack_14 = 0x2565f0" identifier = number_literal) ;) (if_statement "if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }" if (parenthesized_expression "((int)(uint)(0xf < param_2) <= -param_3)" ( (binary_expression "(int)(uint)(0xf < param_2) <= -param_3" (cast_expression "(int)(uint)(0xf < param_2)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0xf < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xf < param_2)" ( (binary_expression "0xf < param_2" number_literal < identifier) )))) <= (unary_expression "-param_3" - identifier)) )) (compound_statement "{\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }" { (labeled_statement "LAB_002567d0:\n    pcVar1 = "ELF file too short";" statement_identifier : (expression_statement "pcVar1 = "ELF file too short";" (assignment_expression "pcVar1 = "ELF file too short"" identifier = (string_literal ""ELF file too short"" " string_content ")) ;)) (labeled_statement "LAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);" statement_identifier : (expression_statement "pcVar1 = (char *)gettext(pcVar1);" (assignment_expression "pcVar1 = (char *)gettext(pcVar1)" identifier = (cast_expression "(char *)gettext(pcVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))))) ;)) (expression_statement "sVar2 = strlen(pcVar1);" (assignment_expression "sVar2 = strlen(pcVar1)" identifier = (call_expression "strlen(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);" (call_expression "FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2)" identifier (argument_list "(param_6,0,param_6[1],pcVar1,sVar2)" ( identifier , number_literal , (subscript_expression "param_6[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = (uint)*(byte *)(param_1 + 6);" (assignment_expression "uVar5 = (uint)*(byte *)(param_1 + 6)" identifier = (binary_expression "(uint)*(byte *)(param_1 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }" { (expression_statement "uVar5 = (uint)*(byte *)(param_1 + 4);" (assignment_expression "uVar5 = (uint)*(byte *)(param_1 + 4)" identifier = (binary_expression "(uint)*(byte *)(param_1 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }" { (expression_statement "pcVar1 = "invalid ELF class 0";" (assignment_expression "pcVar1 = "invalid ELF class 0"" identifier = (string_literal ""invalid ELF class 0"" " string_content ")) ;) (goto_statement "goto LAB_002567d9;" goto statement_identifier ;) })) (if_statement "if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }" if (parenthesized_expression "(1 < uVar5 - 1)" ( (binary_expression "1 < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal)) )) (compound_statement "{\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }" { (expression_statement "pcVar1 = (char *)gettext("unsupported ELF class %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF class %d")" identifier = (cast_expression "(char *)gettext("unsupported ELF class %d")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("unsupported ELF class %d")" identifier (argument_list "("unsupported ELF class %d")" ( (string_literal ""unsupported ELF class %d"" " string_content ") ))))) ;) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar5);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar5)" identifier (argument_list "((char *)local_11c,0x100,pcVar1,uVar5)" ( (cast_expression "(char *)local_11c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" identifier = identifier) ;) (do_statement "do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);" do (compound_statement "{\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      }" { (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" identifier = identifier) ;) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" identifier = (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*ppcVar6 + -0x1010101)" ( (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" * identifier) + number_literal) ))) & (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier))) ;) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" identifier = (binary_expression "uVar8 & 0x80808080" identifier & number_literal)) ;) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" identifier = (binary_expression "ppcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" identifier = (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" ( (binary_expression "uVar8 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        uVar5 = uVar5 >> 0x10;\n      }" { (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" identifier = (binary_expression "uVar5 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }" { (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" identifier = (cast_expression "(char **)((int)ppcVar6 + 6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar6 + 6)" ( (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" identifier = (cast_expression "(char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" ( (binary_expression "(int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" identifier (argument_list "((byte)uVar5,(byte)uVar5)" ( (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" identifier = identifier) ;) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }" { (if_statement "if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;" if (parenthesized_expression "(pcVar1 == (char *)0x1)" ( (binary_expression "pcVar1 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }" { (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" identifier (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier) , (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) }) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_00256a90;" else (if_statement "if (pcVar1 != (char *)0x0) goto LAB_00256a90;" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00256a90;" goto statement_identifier ;)))) }) (else_clause "else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" else (compound_statement "{\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" { (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" identifier = (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_003b5790(&local_134,&local_138,0)" identifier (argument_list "(&local_134,&local_138,0)" ( (pointer_expression "&local_134" & identifier) , (pointer_expression "&local_138" & identifier) , number_literal ))))) ;) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" statement_identifier : (if_statement "if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }" { (if_statement "if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }" { (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" * (cast_expression "(undefined1 *)local_134" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }" { (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" * (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 5)" identifier + (cast_expression "(int)(pcVar1 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 5)" ( (binary_expression "pcVar1 + 5" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" else (compound_statement "{\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" { (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" * identifier) = (subscript_expression "local_11c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" * (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 3)" identifier + (cast_expression "(int)(pcVar1 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 3)" ( (binary_expression "pcVar1 + 3" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" identifier = (cast_expression "(undefined4 *)((int)local_11c - iVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_11c - iVar4)" ( (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }" for ( (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar4)" ( (binary_expression "pcVar1 + iVar4" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar5 != 0" identifier != number_literal) ; (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ) (compound_statement "{\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }" { (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })))) }))) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" * (cast_expression "(char *)((int)local_134 + (int)local_138)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)local_138)" ( (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" identifier = identifier) ;) (if_statement "if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }" if (parenthesized_expression "(local_134 == local_12c)" ( (binary_expression "local_134 == local_12c" identifier == identifier) )) (compound_statement "{\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }" { (labeled_statement "LAB_002568c9:\n        local_140 = local_12c;" statement_identifier : (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" identifier = identifier) ;)) (expression_statement "local_138 = local_130;" (assignment_expression "local_138 = local_130" identifier = identifier) ;) (if_statement "if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }" if (parenthesized_expression "(local_130 != (char *)0x0)" ( (binary_expression "local_130 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }" { (if_statement "if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" if (parenthesized_expression "(local_130 == (char *)0x1)" ( (binary_expression "local_130 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }" { (expression_statement "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_;" (assignment_expression "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_" (pointer_expression "*(undefined1 *)ppcVar3" * (cast_expression "(undefined1 *)ppcVar3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_12c[0]._0_1_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) }) (else_clause "else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" else (compound_statement "{\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" { (expression_statement "memcpy(ppcVar3,local_140,(size_t)local_130);" (call_expression "memcpy(ppcVar3,local_140,(size_t)local_130)" identifier (argument_list "(ppcVar3,local_140,(size_t)local_130)" ( identifier , identifier , (cast_expression "(size_t)local_130" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) }))) })) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)((int)ppcVar3 + (int)local_130) = '\0';" (assignment_expression "*(char *)((int)ppcVar3 + (int)local_130) = '\0'" (pointer_expression "*(char *)((int)ppcVar3 + (int)local_130)" * (cast_expression "(char *)((int)ppcVar3 + (int)local_130)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 + (int)local_130)" ( (binary_expression "(int)ppcVar3 + (int)local_130" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_130" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" identifier = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0025679c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00256751;" goto statement_identifier ;) })) (expression_statement "uVar8 = (uint)*(byte *)(param_1 + 5);" (assignment_expression "uVar8 = (uint)*(byte *)(param_1 + 5)" identifier = (binary_expression "(uint)*(byte *)(param_1 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }" { (expression_statement "pcVar1 = "invalid ELF data encoding";" (assignment_expression "pcVar1 = "invalid ELF data encoding"" identifier = (string_literal ""invalid ELF data encoding"" " string_content ")) ;) (goto_statement "goto LAB_002567d9;" goto statement_identifier ;) })) (if_statement "if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }" if (parenthesized_expression "(uVar8 - 1 < 2)" ( (binary_expression "uVar8 - 1 < 2" (binary_expression "uVar8 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }" { (expression_statement "*(bool *)param_5 = uVar8 == 2;" (assignment_expression "*(bool *)param_5 = uVar8 == 2" (pointer_expression "*(bool *)param_5" * (cast_expression "(bool *)param_5" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar8 == 2" identifier == number_literal)) ;) (if_statement "if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }" { (if_statement "if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }" if (parenthesized_expression "(-param_3 < (int)(uint)(0x33 < param_2))" ( (binary_expression "-param_3 < (int)(uint)(0x33 < param_2)" (unary_expression "-param_3" - identifier) < (cast_expression "(int)(uint)(0x33 < param_2)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0x33 < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x33 < param_2)" ( (binary_expression "0x33 < param_2" number_literal < identifier) ))))) )) (compound_statement "{\n          *param_4 = 0x20;\n          return 1;\n        }" { (expression_statement "*param_4 = 0x20;" (assignment_expression "*param_4 = 0x20" (pointer_expression "*param_4" * identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" else (if_statement "if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" if (parenthesized_expression "(-param_3 < (int)(uint)(0x3f < param_2))" ( (binary_expression "-param_3 < (int)(uint)(0x3f < param_2)" (unary_expression "-param_3" - identifier) < (cast_expression "(int)(uint)(0x3f < param_2)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0x3f < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x3f < param_2)" ( (binary_expression "0x3f < param_2" number_literal < identifier) ))))) )) (compound_statement "{\n        *param_4 = 0x40;\n        return 1;\n      }" { (expression_statement "*param_4 = 0x40;" (assignment_expression "*param_4 = 0x40" (pointer_expression "*param_4" * identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))) (goto_statement "goto LAB_002567d0;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)gettext("unsupported ELF data encoding %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF data encoding %d")" identifier = (cast_expression "(char *)gettext("unsupported ELF data encoding %d")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("unsupported ELF data encoding %d")" identifier (argument_list "("unsupported ELF data encoding %d")" ( (string_literal ""unsupported ELF data encoding %d"" " string_content ") ))))) ;) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar8);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar8)" identifier (argument_list "((char *)local_11c,0x100,pcVar1,uVar8)" ( (cast_expression "(char *)local_11c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" identifier = identifier) ;) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" identifier = identifier) ;) (do_statement "do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);" do (compound_statement "{\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    }" { (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" identifier = identifier) ;) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" identifier = (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*ppcVar6 + -0x1010101)" ( (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" * identifier) + number_literal) ))) & (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier))) ;) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" identifier = (binary_expression "uVar8 & 0x80808080" identifier & number_literal)) ;) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" identifier = (binary_expression "ppcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" identifier = (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" ( (binary_expression "uVar8 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      uVar5 = uVar5 >> 0x10;\n    }" { (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" identifier = (binary_expression "uVar5 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" { (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" identifier = (cast_expression "(char **)((int)ppcVar6 + 6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar6 + 6)" ( (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" identifier = (cast_expression "(char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" ( (binary_expression "(int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" identifier (argument_list "((byte)uVar5,(byte)uVar5)" ( (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }" { (if_statement "if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;" if (parenthesized_expression "(pcVar1 == (char *)0x1)" ( (binary_expression "pcVar1 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }" { (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" identifier (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier) , (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) }) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_00256c40;" else (if_statement "if (pcVar1 != (char *)0x0) goto LAB_00256c40;" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00256c40;" goto statement_identifier ;)))) }) (else_clause "else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" else (compound_statement "{\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" { (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" identifier = (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_003b5790(&local_134,&local_138,0)" identifier (argument_list "(&local_134,&local_138,0)" ( (pointer_expression "&local_134" & identifier) , (pointer_expression "&local_138" & identifier) , number_literal ))))) ;) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" statement_identifier : (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }" { (if_statement "if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" { (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" * (cast_expression "(undefined1 *)local_134" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" { (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" * (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 5)" identifier + (cast_expression "(int)(pcVar1 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 5)" ( (binary_expression "pcVar1 + 5" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" else (compound_statement "{\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" { (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" * identifier) = (subscript_expression "local_11c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" * (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 3)" identifier + (cast_expression "(int)(pcVar1 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 3)" ( (binary_expression "pcVar1 + 3" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" identifier = (cast_expression "(undefined4 *)((int)local_11c - iVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_11c - iVar4)" ( (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" for ( (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar4)" ( (binary_expression "pcVar1 + iVar4" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar5 != 0" identifier != number_literal) ; (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ) (compound_statement "{\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" { (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })))) }))) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" identifier = identifier) ;) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" * (cast_expression "(char *)((int)local_134 + (int)local_138)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)local_138)" ( (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" identifier = identifier) ;) (if_statement "if (local_134 == local_140) goto LAB_002568c9;" if (parenthesized_expression "(local_134 == local_140)" ( (binary_expression "local_134 == local_140" identifier == identifier) )) (goto_statement "goto LAB_002568c9;" goto statement_identifier ;)) (if_statement "if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }" if (parenthesized_expression "(ppcVar3 != (char **)(param_6 + 2))" ( (binary_expression "ppcVar3 != (char **)(param_6 + 2)" identifier != (cast_expression "(char **)(param_6 + 2)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_6 + 2)" ( (binary_expression "param_6 + 2" identifier + number_literal) )))) )) (compound_statement "{\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }" { (expression_statement "pcVar1 = (char *)param_6[2];" (assignment_expression "pcVar1 = (char *)param_6[2]" identifier = (cast_expression "(char *)param_6[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_6[2]" identifier [ number_literal ]))) ;) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = local_138;" (assignment_expression "param_6[1] = local_138" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (expression_statement "local_134 = ppcVar3;" (assignment_expression "local_134 = ppcVar3" identifier = identifier) ;) (goto_statement "goto joined_r0x00256bac;" goto statement_identifier ;) })) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = local_138;" (assignment_expression "param_6[1] = local_138" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" else (compound_statement "{\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" { (if_statement "if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }" { (expression_statement "pcVar1 = "invalid ELF version 0";" (assignment_expression "pcVar1 = "invalid ELF version 0"" identifier = (string_literal ""invalid ELF version 0"" " string_content ")) ;) (goto_statement "goto LAB_002567d9;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)gettext("unsupported ELF version %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF version %d")" identifier = (cast_expression "(char *)gettext("unsupported ELF version %d")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("unsupported ELF version %d")" identifier (argument_list "("unsupported ELF version %d")" ( (string_literal ""unsupported ELF version %d"" " string_content ") ))))) ;) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar5);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar5)" identifier (argument_list "((char *)local_11c,0x100,pcVar1,uVar5)" ( (cast_expression "(char *)local_11c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" identifier = identifier) ;) (do_statement "do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);" do (compound_statement "{\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    }" { (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" identifier = identifier) ;) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" identifier = (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*ppcVar6 + -0x1010101)" ( (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" * identifier) + number_literal) ))) & (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier))) ;) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" identifier = (binary_expression "uVar8 & 0x80808080" identifier & number_literal)) ;) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" identifier = (binary_expression "ppcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" identifier = (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" ( (binary_expression "uVar8 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      uVar5 = uVar5 >> 0x10;\n    }" { (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" identifier = (binary_expression "uVar5 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" { (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" identifier = (cast_expression "(char **)((int)ppcVar6 + 6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar6 + 6)" ( (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" identifier = (cast_expression "(char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" ( (binary_expression "(int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" identifier (argument_list "((byte)uVar5,(byte)uVar5)" ( (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" identifier = identifier) ;) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }" { (if_statement "if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;" if (parenthesized_expression "(pcVar1 == (char *)0x1)" ( (binary_expression "pcVar1 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }" { (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" identifier (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier) , (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) }) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_0025699d;" else (if_statement "if (pcVar1 != (char *)0x0) goto LAB_0025699d;" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025699d;" goto statement_identifier ;)))) }) (else_clause "else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" else (compound_statement "{\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" { (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" identifier = (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_003b5790(&local_134,&local_138,0)" identifier (argument_list "(&local_134,&local_138,0)" ( (pointer_expression "&local_134" & identifier) , (pointer_expression "&local_138" & identifier) , number_literal ))))) ;) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" statement_identifier : (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }" { (if_statement "if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" { (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" * (cast_expression "(undefined1 *)local_134" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" { (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" * (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 5)" identifier + (cast_expression "(int)(pcVar1 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 5)" ( (binary_expression "pcVar1 + 5" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" else (compound_statement "{\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" { (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" * identifier) = (subscript_expression "local_11c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" * (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 3)" identifier + (cast_expression "(int)(pcVar1 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 3)" ( (binary_expression "pcVar1 + 3" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" identifier = (cast_expression "(undefined4 *)((int)local_11c - iVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_11c - iVar4)" ( (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" for ( (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar4)" ( (binary_expression "pcVar1 + iVar4" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar5 != 0" identifier != number_literal) ; (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ) (compound_statement "{\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" { (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })))) }))) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" * (cast_expression "(char *)((int)local_134 + (int)local_138)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)local_138)" ( (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" identifier = identifier) ;) (if_statement "if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }" if (parenthesized_expression "(local_134 == local_12c)" ( (binary_expression "local_134 == local_12c" identifier == identifier) )) (compound_statement "{\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }" { (expression_statement "pcVar1 = local_138;" (assignment_expression "pcVar1 = local_138" identifier = identifier) ;) (if_statement "if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }" if (parenthesized_expression "(local_138 != (char *)0x0)" ( (binary_expression "local_138 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }" { (if_statement "if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" if (parenthesized_expression "(local_138 == (char *)0x1)" ( (binary_expression "local_138 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }" { (expression_statement "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_;" (assignment_expression "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_" (pointer_expression "*(undefined1 *)ppcVar3" * (cast_expression "(undefined1 *)ppcVar3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_12c[0]._0_1_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) }) (else_clause "else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" else (compound_statement "{\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" { (expression_statement "memcpy(ppcVar3,local_12c,(size_t)local_138);" (call_expression "memcpy(ppcVar3,local_12c,(size_t)local_138)" identifier (argument_list "(ppcVar3,local_12c,(size_t)local_138)" ( identifier , identifier , (cast_expression "(size_t)local_138" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "pcVar1 = local_130;" (assignment_expression "pcVar1 = local_130" identifier = identifier) ;) }))) })) (expression_statement "param_6[1] = pcVar1;" (assignment_expression "param_6[1] = pcVar1" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)((int)ppcVar3 + (int)pcVar1) = '\0';" (assignment_expression "*(char *)((int)ppcVar3 + (int)pcVar1) = '\0'" (pointer_expression "*(char *)((int)ppcVar3 + (int)pcVar1)" * (cast_expression "(char *)((int)ppcVar3 + (int)pcVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 + (int)pcVar1)" ( (binary_expression "(int)ppcVar3 + (int)pcVar1" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" identifier = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0025679c;" goto statement_identifier ;) })) (labeled_statement "LAB_00256751:\n    local_138 = local_130;" statement_identifier : (expression_statement "local_138 = local_130;" (assignment_expression "local_138 = local_130" identifier = identifier) ;)) (if_statement "if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" if (parenthesized_expression "(ppcVar3 == (char **)(param_6 + 2))" ( (binary_expression "ppcVar3 == (char **)(param_6 + 2)" identifier == (cast_expression "(char **)(param_6 + 2)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_6 + 2)" ( (binary_expression "param_6 + 2" identifier + number_literal) )))) )) (compound_statement "{\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }" { (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" else (compound_statement "{\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" { (expression_statement "pcVar1 = (char *)param_6[2];" (assignment_expression "pcVar1 = (char *)param_6[2]" identifier = (cast_expression "(char *)param_6[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_6[2]" identifier [ number_literal ]))) ;) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (expression_statement "local_134 = ppcVar3;" (assignment_expression "local_134 = ppcVar3" identifier = identifier) ;) (labeled_statement "joined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;" statement_identifier : (if_statement "if (local_134 != (char **)0x0) goto LAB_0025679c;" if (parenthesized_expression "(local_134 != (char **)0x0)" ( (binary_expression "local_134 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0025679c;" goto statement_identifier ;))) }))) }))) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" identifier = identifier) ;) (expression_statement "local_134 = local_140;" (assignment_expression "local_134 = local_140" identifier = identifier) ;) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" identifier = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0025679c:\n  local_12c[0] = pcVar1;" statement_identifier : (expression_statement "local_12c[0] = pcVar1;" (assignment_expression "local_12c[0] = pcVar1" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" identifier = identifier) ;) (expression_statement "local_130 = (char *)0x0;" (assignment_expression "local_130 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined1 *)local_134 = 0;" (assignment_expression "*(undefined1 *)local_134 = 0" (pointer_expression "*(undefined1 *)local_134" * (cast_expression "(undefined1 *)local_134" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_134 == local_140) {\n    return 0;\n  }" if (parenthesized_expression "(local_134 == local_140)" ( (binary_expression "local_134 == local_140" identifier == identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "FUN_003ae080(local_134);" (call_expression "FUN_003ae080(local_134)" identifier (argument_list "(local_134)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbool elfcpp::Elf_recognizer::is_valid_header\n               (uchar *ehdr_buf,off_t bufsize,int *size,bool *big_endian,string *error)\n\n{\n  size_type __dnew;\n  char buf [256];\n  \n}\n\n" comment (function_definition "bool elfcpp::Elf_recognizer::is_valid_header\n               (uchar *ehdr_buf,off_t bufsize,int *size,bool *big_endian,string *error)\n\n{\n  size_type __dnew;\n  char buf [256];\n  \n}" primitive_type (ERROR "elfcpp::Elf_recognizer::" identifier : : identifier : :) (function_declarator "is_valid_header\n               (uchar *ehdr_buf,off_t bufsize,int *size,bool *big_endian,string *error)" identifier (parameter_list "(uchar *ehdr_buf,off_t bufsize,int *size,bool *big_endian,string *error)" ( (parameter_declaration "uchar *ehdr_buf" type_identifier (pointer_declarator "*ehdr_buf" * identifier)) , (parameter_declaration "off_t bufsize" type_identifier identifier) , (parameter_declaration "int *size" primitive_type (pointer_declarator "*size" * identifier)) , (parameter_declaration "bool *big_endian" primitive_type (pointer_declarator "*big_endian" * identifier)) , (parameter_declaration "string *error" type_identifier (pointer_declarator "*error" * identifier)) ))) (compound_statement "{\n  size_type __dnew;\n  char buf [256];\n  \n}" { (declaration "size_type __dnew;" type_identifier identifier ;) (declaration "char buf [256];" primitive_type (array_declarator "buf [256]" identifier [ number_literal ]) ;) })))
(translation_unit "undefined4\nFUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char **ppcVar3;\n  int iVar4;\n  uint uVar5;\n  char **ppcVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  bool bVar10;\n  byte bVar11;\n  char **local_140;\n  char *local_138;\n  char **local_134;\n  char *local_130;\n  char *local_12c [2];\n  char acStack_123 [7];\n  char *local_11c [66];\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x2565f0;\n  if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }\n  uVar5 = (uint)*(byte *)(param_1 + 6);\n  if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }\n  local_140 = local_12c;\n  local_134 = local_140;\n  pcVar1 = local_12c[0];\nLAB_0025679c:\n  local_12c[0] = pcVar1;\n  local_140 = local_12c;\n  local_130 = (char *)0x0;\n  *(undefined1 *)local_134 = 0;\n  if (local_134 == local_140) {\n    return 0;\n  }\n  FUN_003ae080(local_134);\n  return 0;\n}\n\n" (function_definition "undefined4\nFUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char **ppcVar3;\n  int iVar4;\n  uint uVar5;\n  char **ppcVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  bool bVar10;\n  byte bVar11;\n  char **local_140;\n  char *local_138;\n  char **local_134;\n  char *local_130;\n  char *local_12c [2];\n  char acStack_123 [7];\n  char *local_11c [66];\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x2565f0;\n  if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }\n  uVar5 = (uint)*(byte *)(param_1 + 6);\n  if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }\n  local_140 = local_12c;\n  local_134 = local_140;\n  pcVar1 = local_12c[0];\nLAB_0025679c:\n  local_12c[0] = pcVar1;\n  local_140 = local_12c;\n  local_130 = (char *)0x0;\n  *(undefined1 *)local_134 = 0;\n  if (local_134 == local_140) {\n    return 0;\n  }\n  FUN_003ae080(local_134);\n  return 0;\n}" type_identifier (function_declarator "FUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)" identifier (parameter_list "(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  size_t sVar2;\n  char **ppcVar3;\n  int iVar4;\n  uint uVar5;\n  char **ppcVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  bool bVar10;\n  byte bVar11;\n  char **local_140;\n  char *local_138;\n  char **local_134;\n  char *local_130;\n  char *local_12c [2];\n  char acStack_123 [7];\n  char *local_11c [66];\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x2565f0;\n  if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }\n  uVar5 = (uint)*(byte *)(param_1 + 6);\n  if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }\n  local_140 = local_12c;\n  local_134 = local_140;\n  pcVar1 = local_12c[0];\nLAB_0025679c:\n  local_12c[0] = pcVar1;\n  local_140 = local_12c;\n  local_130 = (char *)0x0;\n  *(undefined1 *)local_134 = 0;\n  if (local_134 == local_140) {\n    return 0;\n  }\n  FUN_003ae080(local_134);\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char **ppcVar3;" primitive_type (pointer_declarator "**ppcVar3" * (pointer_declarator "*ppcVar3" * identifier)) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char **ppcVar6;" primitive_type (pointer_declarator "**ppcVar6" * (pointer_declarator "*ppcVar6" * identifier)) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "char **local_140;" primitive_type (pointer_declarator "**local_140" * (pointer_declarator "*local_140" * identifier)) ;) (declaration "char *local_138;" primitive_type (pointer_declarator "*local_138" * identifier) ;) (declaration "char **local_134;" primitive_type (pointer_declarator "**local_134" * (pointer_declarator "*local_134" * identifier)) ;) (declaration "char *local_130;" primitive_type (pointer_declarator "*local_130" * identifier) ;) (declaration "char *local_12c [2];" primitive_type (pointer_declarator "*local_12c [2]" * (array_declarator "local_12c [2]" identifier [ number_literal ])) ;) (declaration "char acStack_123 [7];" primitive_type (array_declarator "acStack_123 [7]" identifier [ number_literal ]) ;) (declaration "char *local_11c [66];" primitive_type (pointer_declarator "*local_11c [66]" * (array_declarator "local_11c [66]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x2565f0;" (assignment_expression "uStack_14 = 0x2565f0" identifier = number_literal) ;) (if_statement "if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }" if (parenthesized_expression "((int)(uint)(0xf < param_2) <= -param_3)" ( (binary_expression "(int)(uint)(0xf < param_2) <= -param_3" (cast_expression "(int)(uint)(0xf < param_2)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0xf < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xf < param_2)" ( (binary_expression "0xf < param_2" number_literal < identifier) )))) <= (unary_expression "-param_3" - identifier)) )) (compound_statement "{\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }" { (labeled_statement "LAB_002567d0:\n    pcVar1 = "ELF file too short";" statement_identifier : (expression_statement "pcVar1 = "ELF file too short";" (assignment_expression "pcVar1 = "ELF file too short"" identifier = (string_literal ""ELF file too short"" " string_content ")) ;)) (labeled_statement "LAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);" statement_identifier : (expression_statement "pcVar1 = (char *)gettext(pcVar1);" (assignment_expression "pcVar1 = (char *)gettext(pcVar1)" identifier = (cast_expression "(char *)gettext(pcVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))))) ;)) (expression_statement "sVar2 = strlen(pcVar1);" (assignment_expression "sVar2 = strlen(pcVar1)" identifier = (call_expression "strlen(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);" (call_expression "FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2)" identifier (argument_list "(param_6,0,param_6[1],pcVar1,sVar2)" ( identifier , number_literal , (subscript_expression "param_6[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = (uint)*(byte *)(param_1 + 6);" (assignment_expression "uVar5 = (uint)*(byte *)(param_1 + 6)" identifier = (binary_expression "(uint)*(byte *)(param_1 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }" { (expression_statement "uVar5 = (uint)*(byte *)(param_1 + 4);" (assignment_expression "uVar5 = (uint)*(byte *)(param_1 + 4)" identifier = (binary_expression "(uint)*(byte *)(param_1 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }" { (expression_statement "pcVar1 = "invalid ELF class 0";" (assignment_expression "pcVar1 = "invalid ELF class 0"" identifier = (string_literal ""invalid ELF class 0"" " string_content ")) ;) (goto_statement "goto LAB_002567d9;" goto statement_identifier ;) })) (if_statement "if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }" if (parenthesized_expression "(1 < uVar5 - 1)" ( (binary_expression "1 < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal)) )) (compound_statement "{\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }" { (expression_statement "pcVar1 = (char *)gettext("unsupported ELF class %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF class %d")" identifier = (cast_expression "(char *)gettext("unsupported ELF class %d")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("unsupported ELF class %d")" identifier (argument_list "("unsupported ELF class %d")" ( (string_literal ""unsupported ELF class %d"" " string_content ") ))))) ;) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar5);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar5)" identifier (argument_list "((char *)local_11c,0x100,pcVar1,uVar5)" ( (cast_expression "(char *)local_11c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" identifier = identifier) ;) (do_statement "do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);" do (compound_statement "{\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      }" { (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" identifier = identifier) ;) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" identifier = (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*ppcVar6 + -0x1010101)" ( (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" * identifier) + number_literal) ))) & (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier))) ;) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" identifier = (binary_expression "uVar8 & 0x80808080" identifier & number_literal)) ;) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" identifier = (binary_expression "ppcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" identifier = (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" ( (binary_expression "uVar8 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        uVar5 = uVar5 >> 0x10;\n      }" { (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" identifier = (binary_expression "uVar5 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }" { (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" identifier = (cast_expression "(char **)((int)ppcVar6 + 6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar6 + 6)" ( (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" identifier = (cast_expression "(char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" ( (binary_expression "(int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" identifier (argument_list "((byte)uVar5,(byte)uVar5)" ( (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" identifier = identifier) ;) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }" { (if_statement "if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;" if (parenthesized_expression "(pcVar1 == (char *)0x1)" ( (binary_expression "pcVar1 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }" { (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" identifier (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier) , (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) }) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_00256a90;" else (if_statement "if (pcVar1 != (char *)0x0) goto LAB_00256a90;" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00256a90;" goto statement_identifier ;)))) }) (else_clause "else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" else (compound_statement "{\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" { (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" identifier = (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_003b5790(&local_134,&local_138,0)" identifier (argument_list "(&local_134,&local_138,0)" ( (pointer_expression "&local_134" & identifier) , (pointer_expression "&local_138" & identifier) , number_literal ))))) ;) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" statement_identifier : (if_statement "if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }" { (if_statement "if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }" { (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" * (cast_expression "(undefined1 *)local_134" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }" { (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" * (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 5)" identifier + (cast_expression "(int)(pcVar1 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 5)" ( (binary_expression "pcVar1 + 5" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" else (compound_statement "{\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" { (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" * identifier) = (subscript_expression "local_11c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" * (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 3)" identifier + (cast_expression "(int)(pcVar1 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 3)" ( (binary_expression "pcVar1 + 3" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" identifier = (cast_expression "(undefined4 *)((int)local_11c - iVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_11c - iVar4)" ( (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }" for ( (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar4)" ( (binary_expression "pcVar1 + iVar4" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar5 != 0" identifier != number_literal) ; (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ) (compound_statement "{\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }" { (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })))) }))) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" * (cast_expression "(char *)((int)local_134 + (int)local_138)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)local_138)" ( (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" identifier = identifier) ;) (if_statement "if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }" if (parenthesized_expression "(local_134 == local_12c)" ( (binary_expression "local_134 == local_12c" identifier == identifier) )) (compound_statement "{\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }" { (labeled_statement "LAB_002568c9:\n        local_140 = local_12c;" statement_identifier : (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" identifier = identifier) ;)) (expression_statement "local_138 = local_130;" (assignment_expression "local_138 = local_130" identifier = identifier) ;) (if_statement "if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }" if (parenthesized_expression "(local_130 != (char *)0x0)" ( (binary_expression "local_130 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }" { (if_statement "if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" if (parenthesized_expression "(local_130 == (char *)0x1)" ( (binary_expression "local_130 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }" { (expression_statement "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_;" (assignment_expression "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_" (pointer_expression "*(undefined1 *)ppcVar3" * (cast_expression "(undefined1 *)ppcVar3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_12c[0]._0_1_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) }) (else_clause "else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" else (compound_statement "{\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" { (expression_statement "memcpy(ppcVar3,local_140,(size_t)local_130);" (call_expression "memcpy(ppcVar3,local_140,(size_t)local_130)" identifier (argument_list "(ppcVar3,local_140,(size_t)local_130)" ( identifier , identifier , (cast_expression "(size_t)local_130" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) }))) })) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)((int)ppcVar3 + (int)local_130) = '\0';" (assignment_expression "*(char *)((int)ppcVar3 + (int)local_130) = '\0'" (pointer_expression "*(char *)((int)ppcVar3 + (int)local_130)" * (cast_expression "(char *)((int)ppcVar3 + (int)local_130)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 + (int)local_130)" ( (binary_expression "(int)ppcVar3 + (int)local_130" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_130" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" identifier = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0025679c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00256751;" goto statement_identifier ;) })) (expression_statement "uVar8 = (uint)*(byte *)(param_1 + 5);" (assignment_expression "uVar8 = (uint)*(byte *)(param_1 + 5)" identifier = (binary_expression "(uint)*(byte *)(param_1 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_1 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }" { (expression_statement "pcVar1 = "invalid ELF data encoding";" (assignment_expression "pcVar1 = "invalid ELF data encoding"" identifier = (string_literal ""invalid ELF data encoding"" " string_content ")) ;) (goto_statement "goto LAB_002567d9;" goto statement_identifier ;) })) (if_statement "if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }" if (parenthesized_expression "(uVar8 - 1 < 2)" ( (binary_expression "uVar8 - 1 < 2" (binary_expression "uVar8 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }" { (expression_statement "*(bool *)param_5 = uVar8 == 2;" (assignment_expression "*(bool *)param_5 = uVar8 == 2" (pointer_expression "*(bool *)param_5" * (cast_expression "(bool *)param_5" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar8 == 2" identifier == number_literal)) ;) (if_statement "if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }" { (if_statement "if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }" if (parenthesized_expression "(-param_3 < (int)(uint)(0x33 < param_2))" ( (binary_expression "-param_3 < (int)(uint)(0x33 < param_2)" (unary_expression "-param_3" - identifier) < (cast_expression "(int)(uint)(0x33 < param_2)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0x33 < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x33 < param_2)" ( (binary_expression "0x33 < param_2" number_literal < identifier) ))))) )) (compound_statement "{\n          *param_4 = 0x20;\n          return 1;\n        }" { (expression_statement "*param_4 = 0x20;" (assignment_expression "*param_4 = 0x20" (pointer_expression "*param_4" * identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" else (if_statement "if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" if (parenthesized_expression "(-param_3 < (int)(uint)(0x3f < param_2))" ( (binary_expression "-param_3 < (int)(uint)(0x3f < param_2)" (unary_expression "-param_3" - identifier) < (cast_expression "(int)(uint)(0x3f < param_2)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0x3f < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x3f < param_2)" ( (binary_expression "0x3f < param_2" number_literal < identifier) ))))) )) (compound_statement "{\n        *param_4 = 0x40;\n        return 1;\n      }" { (expression_statement "*param_4 = 0x40;" (assignment_expression "*param_4 = 0x40" (pointer_expression "*param_4" * identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))) (goto_statement "goto LAB_002567d0;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)gettext("unsupported ELF data encoding %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF data encoding %d")" identifier = (cast_expression "(char *)gettext("unsupported ELF data encoding %d")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("unsupported ELF data encoding %d")" identifier (argument_list "("unsupported ELF data encoding %d")" ( (string_literal ""unsupported ELF data encoding %d"" " string_content ") ))))) ;) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar8);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar8)" identifier (argument_list "((char *)local_11c,0x100,pcVar1,uVar8)" ( (cast_expression "(char *)local_11c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" identifier = identifier) ;) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" identifier = identifier) ;) (do_statement "do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);" do (compound_statement "{\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    }" { (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" identifier = identifier) ;) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" identifier = (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*ppcVar6 + -0x1010101)" ( (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" * identifier) + number_literal) ))) & (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier))) ;) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" identifier = (binary_expression "uVar8 & 0x80808080" identifier & number_literal)) ;) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" identifier = (binary_expression "ppcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" identifier = (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" ( (binary_expression "uVar8 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      uVar5 = uVar5 >> 0x10;\n    }" { (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" identifier = (binary_expression "uVar5 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" { (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" identifier = (cast_expression "(char **)((int)ppcVar6 + 6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar6 + 6)" ( (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" identifier = (cast_expression "(char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" ( (binary_expression "(int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" identifier (argument_list "((byte)uVar5,(byte)uVar5)" ( (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }" { (if_statement "if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;" if (parenthesized_expression "(pcVar1 == (char *)0x1)" ( (binary_expression "pcVar1 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }" { (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" identifier (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier) , (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) }) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_00256c40;" else (if_statement "if (pcVar1 != (char *)0x0) goto LAB_00256c40;" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00256c40;" goto statement_identifier ;)))) }) (else_clause "else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" else (compound_statement "{\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" { (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" identifier = (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_003b5790(&local_134,&local_138,0)" identifier (argument_list "(&local_134,&local_138,0)" ( (pointer_expression "&local_134" & identifier) , (pointer_expression "&local_138" & identifier) , number_literal ))))) ;) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" statement_identifier : (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }" { (if_statement "if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" { (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" * (cast_expression "(undefined1 *)local_134" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" { (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" * (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 5)" identifier + (cast_expression "(int)(pcVar1 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 5)" ( (binary_expression "pcVar1 + 5" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" else (compound_statement "{\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" { (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" * identifier) = (subscript_expression "local_11c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" * (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 3)" identifier + (cast_expression "(int)(pcVar1 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 3)" ( (binary_expression "pcVar1 + 3" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" identifier = (cast_expression "(undefined4 *)((int)local_11c - iVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_11c - iVar4)" ( (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" for ( (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar4)" ( (binary_expression "pcVar1 + iVar4" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar5 != 0" identifier != number_literal) ; (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ) (compound_statement "{\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" { (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })))) }))) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" identifier = identifier) ;) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" * (cast_expression "(char *)((int)local_134 + (int)local_138)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)local_138)" ( (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" identifier = identifier) ;) (if_statement "if (local_134 == local_140) goto LAB_002568c9;" if (parenthesized_expression "(local_134 == local_140)" ( (binary_expression "local_134 == local_140" identifier == identifier) )) (goto_statement "goto LAB_002568c9;" goto statement_identifier ;)) (if_statement "if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }" if (parenthesized_expression "(ppcVar3 != (char **)(param_6 + 2))" ( (binary_expression "ppcVar3 != (char **)(param_6 + 2)" identifier != (cast_expression "(char **)(param_6 + 2)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_6 + 2)" ( (binary_expression "param_6 + 2" identifier + number_literal) )))) )) (compound_statement "{\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }" { (expression_statement "pcVar1 = (char *)param_6[2];" (assignment_expression "pcVar1 = (char *)param_6[2]" identifier = (cast_expression "(char *)param_6[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_6[2]" identifier [ number_literal ]))) ;) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = local_138;" (assignment_expression "param_6[1] = local_138" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (expression_statement "local_134 = ppcVar3;" (assignment_expression "local_134 = ppcVar3" identifier = identifier) ;) (goto_statement "goto joined_r0x00256bac;" goto statement_identifier ;) })) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = local_138;" (assignment_expression "param_6[1] = local_138" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" else (compound_statement "{\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" { (if_statement "if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }" { (expression_statement "pcVar1 = "invalid ELF version 0";" (assignment_expression "pcVar1 = "invalid ELF version 0"" identifier = (string_literal ""invalid ELF version 0"" " string_content ")) ;) (goto_statement "goto LAB_002567d9;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)gettext("unsupported ELF version %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF version %d")" identifier = (cast_expression "(char *)gettext("unsupported ELF version %d")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("unsupported ELF version %d")" identifier (argument_list "("unsupported ELF version %d")" ( (string_literal ""unsupported ELF version %d"" " string_content ") ))))) ;) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar5);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar5)" identifier (argument_list "((char *)local_11c,0x100,pcVar1,uVar5)" ( (cast_expression "(char *)local_11c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" identifier = identifier) ;) (do_statement "do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);" do (compound_statement "{\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    }" { (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" identifier = identifier) ;) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" identifier = (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*ppcVar6 + -0x1010101)" ( (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" * identifier) + number_literal) ))) & (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" ~ (parenthesized_expression "(uint)" ( identifier ))) * identifier))) ;) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" identifier = (binary_expression "uVar8 & 0x80808080" identifier & number_literal)) ;) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" identifier = (binary_expression "ppcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) ;) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" identifier = (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" ( (binary_expression "uVar8 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      uVar5 = uVar5 >> 0x10;\n    }" { (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" identifier = (binary_expression "uVar5 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" { (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" identifier = (cast_expression "(char **)((int)ppcVar6 + 6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar6 + 6)" ( (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" identifier = (cast_expression "(char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" ( (binary_expression "(int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" ( (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" identifier (argument_list "((byte)uVar5,(byte)uVar5)" ( (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" identifier = identifier) ;) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" if (parenthesized_expression "(pcVar1 < (char *)0x10)" ( (binary_expression "pcVar1 < (char *)0x10" identifier < (cast_expression "(char *)0x10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }" { (if_statement "if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;" if (parenthesized_expression "(pcVar1 == (char *)0x1)" ( (binary_expression "pcVar1 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }" { (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" identifier (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" ( (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier) , (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier) ))))) ;) }) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_0025699d;" else (if_statement "if (pcVar1 != (char *)0x0) goto LAB_0025699d;" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025699d;" goto statement_identifier ;)))) }) (else_clause "else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" else (compound_statement "{\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" { (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" identifier = (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_003b5790(&local_134,&local_138,0)" identifier (argument_list "(&local_134,&local_138,0)" ( (pointer_expression "&local_134" & identifier) , (pointer_expression "&local_138" & identifier) , number_literal ))))) ;) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" statement_identifier : (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }" { (if_statement "if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" { (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" * (cast_expression "(undefined1 *)local_134" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" { (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" * (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 5)" identifier + (cast_expression "(int)(pcVar1 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 5)" ( (binary_expression "pcVar1 + 5" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" else (compound_statement "{\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" { (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" * identifier) = (subscript_expression "local_11c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" ( (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" * (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" ( (binary_expression "acStack_123 + (int)(pcVar1 + 3)" identifier + (cast_expression "(int)(pcVar1 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 3)" ( (binary_expression "pcVar1 + 3" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" identifier = (cast_expression "(undefined4 *)((int)local_11c - iVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_11c - iVar4)" ( (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_134 + 1)" ( (binary_expression "local_134 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" for ( (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar4)" ( (binary_expression "pcVar1 + iVar4" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar5 != 0" identifier != number_literal) ; (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ) (compound_statement "{\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" { (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })))) }))) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" * (cast_expression "(char *)((int)local_134 + (int)local_138)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + (int)local_138)" ( (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" identifier = identifier) ;) (if_statement "if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }" if (parenthesized_expression "(local_134 == local_12c)" ( (binary_expression "local_134 == local_12c" identifier == identifier) )) (compound_statement "{\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }" { (expression_statement "pcVar1 = local_138;" (assignment_expression "pcVar1 = local_138" identifier = identifier) ;) (if_statement "if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }" if (parenthesized_expression "(local_138 != (char *)0x0)" ( (binary_expression "local_138 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }" { (if_statement "if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" if (parenthesized_expression "(local_138 == (char *)0x1)" ( (binary_expression "local_138 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }" { (expression_statement "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_;" (assignment_expression "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_" (pointer_expression "*(undefined1 *)ppcVar3" * (cast_expression "(undefined1 *)ppcVar3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_12c[0]._0_1_" (subscript_expression "local_12c[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) }) (else_clause "else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" else (compound_statement "{\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" { (expression_statement "memcpy(ppcVar3,local_12c,(size_t)local_138);" (call_expression "memcpy(ppcVar3,local_12c,(size_t)local_138)" identifier (argument_list "(ppcVar3,local_12c,(size_t)local_138)" ( identifier , identifier , (cast_expression "(size_t)local_138" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" identifier = (cast_expression "(char **)*param_6" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "pcVar1 = local_130;" (assignment_expression "pcVar1 = local_130" identifier = identifier) ;) }))) })) (expression_statement "param_6[1] = pcVar1;" (assignment_expression "param_6[1] = pcVar1" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)((int)ppcVar3 + (int)pcVar1) = '\0';" (assignment_expression "*(char *)((int)ppcVar3 + (int)pcVar1) = '\0'" (pointer_expression "*(char *)((int)ppcVar3 + (int)pcVar1)" * (cast_expression "(char *)((int)ppcVar3 + (int)pcVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar3 + (int)pcVar1)" ( (binary_expression "(int)ppcVar3 + (int)pcVar1" (cast_expression "(int)ppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" identifier = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0025679c;" goto statement_identifier ;) })) (labeled_statement "LAB_00256751:\n    local_138 = local_130;" statement_identifier : (expression_statement "local_138 = local_130;" (assignment_expression "local_138 = local_130" identifier = identifier) ;)) (if_statement "if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" if (parenthesized_expression "(ppcVar3 == (char **)(param_6 + 2))" ( (binary_expression "ppcVar3 == (char **)(param_6 + 2)" identifier == (cast_expression "(char **)(param_6 + 2)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_6 + 2)" ( (binary_expression "param_6 + 2" identifier + number_literal) )))) )) (compound_statement "{\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }" { (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" else (compound_statement "{\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" { (expression_statement "pcVar1 = (char *)param_6[2];" (assignment_expression "pcVar1 = (char *)param_6[2]" identifier = (cast_expression "(char *)param_6[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_6[2]" identifier [ number_literal ]))) ;) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (expression_statement "local_134 = ppcVar3;" (assignment_expression "local_134 = ppcVar3" identifier = identifier) ;) (labeled_statement "joined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;" statement_identifier : (if_statement "if (local_134 != (char **)0x0) goto LAB_0025679c;" if (parenthesized_expression "(local_134 != (char **)0x0)" ( (binary_expression "local_134 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0025679c;" goto statement_identifier ;))) }))) }))) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" identifier = identifier) ;) (expression_statement "local_134 = local_140;" (assignment_expression "local_134 = local_140" identifier = identifier) ;) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" identifier = (subscript_expression "local_12c[0]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0025679c:\n  local_12c[0] = pcVar1;" statement_identifier : (expression_statement "local_12c[0] = pcVar1;" (assignment_expression "local_12c[0] = pcVar1" (subscript_expression "local_12c[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" identifier = identifier) ;) (expression_statement "local_130 = (char *)0x0;" (assignment_expression "local_130 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined1 *)local_134 = 0;" (assignment_expression "*(undefined1 *)local_134 = 0" (pointer_expression "*(undefined1 *)local_134" * (cast_expression "(undefined1 *)local_134" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_134 == local_140) {\n    return 0;\n  }" if (parenthesized_expression "(local_134 == local_140)" ( (binary_expression "local_134 == local_140" identifier == identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "FUN_003ae080(local_134);" (call_expression "FUN_003ae080(local_134)" identifier (argument_list "(local_134)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) <= (unary_expression - IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + LIT) ))) & (binary_expression (unary_expression ~ (parenthesized_expression ( IDENT ))) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (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)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_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 TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) >> LIT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (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)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (unary_expression - IDENT) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (unary_expression - IDENT) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + LIT) ))) & (binary_expression (unary_expression ~ (parenthesized_expression ( IDENT ))) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_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 TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) >> LIT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) })))) }))) (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 TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + LIT) ))) & (binary_expression (unary_expression ~ (parenthesized_expression ( IDENT ))) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (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)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_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 TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) >> LIT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;))) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4\nFUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char **ppcVar3;\n  int iVar4;\n  uint uVar5;\n  char **ppcVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  bool bVar10;\n  byte bVar11;\n  char **local_140;\n  char *local_138;\n  char **local_134;\n  char *local_130;\n  char *local_12c [2];\n  char acStack_123 [7];\n  char *local_11c [66];\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x2565f0;\n  if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }\n  uVar5 = (uint)*(byte *)(param_1 + 6);\n  if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }\n  local_140 = local_12c;\n  local_134 = local_140;\n  pcVar1 = local_12c[0];\nLAB_0025679c:\n  local_12c[0] = pcVar1;\n  local_140 = local_12c;\n  local_130 = (char *)0x0;\n  *(undefined1 *)local_134 = 0;\n  if (local_134 == local_140) {\n    return 0;\n  }\n  FUN_003ae080(local_134);\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_002565e0(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)" (identifier "FUN_002565e0") (parameter_list "(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,\n            undefined4 *param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 *param_6" (type_identifier "undefined4") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  char *pcVar1;\n  size_t sVar2;\n  char **ppcVar3;\n  int iVar4;\n  uint uVar5;\n  char **ppcVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  bool bVar10;\n  byte bVar11;\n  char **local_140;\n  char *local_138;\n  char **local_134;\n  char *local_130;\n  char *local_12c [2];\n  char acStack_123 [7];\n  char *local_11c [66];\n  undefined4 uStack_14;\n  \n  bVar11 = 0;\n  uStack_14 = 0x2565f0;\n  if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }\n  uVar5 = (uint)*(byte *)(param_1 + 6);\n  if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }\n  local_140 = local_12c;\n  local_134 = local_140;\n  pcVar1 = local_12c[0];\nLAB_0025679c:\n  local_12c[0] = pcVar1;\n  local_140 = local_12c;\n  local_130 = (char *)0x0;\n  *(undefined1 *)local_134 = 0;\n  if (local_134 == local_140) {\n    return 0;\n  }\n  FUN_003ae080(local_134);\n  return 0;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "char **ppcVar3;" (primitive_type "char") (pointer_declarator "**ppcVar3" (* "*") (pointer_declarator "*ppcVar3" (* "*") (identifier "ppcVar3"))) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "char **ppcVar6;" (primitive_type "char") (pointer_declarator "**ppcVar6" (* "*") (pointer_declarator "*ppcVar6" (* "*") (identifier "ppcVar6"))) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "char **local_140;" (primitive_type "char") (pointer_declarator "**local_140" (* "*") (pointer_declarator "*local_140" (* "*") (identifier "local_140"))) (; ";")) (declaration "char *local_138;" (primitive_type "char") (pointer_declarator "*local_138" (* "*") (identifier "local_138")) (; ";")) (declaration "char **local_134;" (primitive_type "char") (pointer_declarator "**local_134" (* "*") (pointer_declarator "*local_134" (* "*") (identifier "local_134"))) (; ";")) (declaration "char *local_130;" (primitive_type "char") (pointer_declarator "*local_130" (* "*") (identifier "local_130")) (; ";")) (declaration "char *local_12c [2];" (primitive_type "char") (pointer_declarator "*local_12c [2]" (* "*") (array_declarator "local_12c [2]" (identifier "local_12c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "char acStack_123 [7];" (primitive_type "char") (array_declarator "acStack_123 [7]" (identifier "acStack_123") ([ "[") (number_literal "7") (] "]")) (; ";")) (declaration "char *local_11c [66];" (primitive_type "char") (pointer_declarator "*local_11c [66]" (* "*") (array_declarator "local_11c [66]" (identifier "local_11c") ([ "[") (number_literal "66") (] "]"))) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x2565f0;" (assignment_expression "uStack_14 = 0x2565f0" (identifier "uStack_14") (= "=") (number_literal "0x2565f0")) (; ";")) (if_statement "if ((int)(uint)(0xf < param_2) <= -param_3) {\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }" (if "if") (parenthesized_expression "((int)(uint)(0xf < param_2) <= -param_3)" (( "(") (binary_expression "(int)(uint)(0xf < param_2) <= -param_3" (cast_expression "(int)(uint)(0xf < param_2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(0xf < param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xf < param_2)" (( "(") (binary_expression "0xf < param_2" (number_literal "0xf") (< "<") (identifier "param_2")) () ")")))) (<= "<=") (unary_expression "-param_3" (- "-") (identifier "param_3"))) () ")")) (compound_statement "{\nLAB_002567d0:\n    pcVar1 = "ELF file too short";\nLAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);\n    sVar2 = strlen(pcVar1);\n    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);\n    return 0;\n  }" ({ "{") (labeled_statement "LAB_002567d0:\n    pcVar1 = "ELF file too short";" (statement_identifier "LAB_002567d0") (: ":") (expression_statement "pcVar1 = "ELF file too short";" (assignment_expression "pcVar1 = "ELF file too short"" (identifier "pcVar1") (= "=") (string_literal ""ELF file too short"" (" """) (string_content "ELF file too short") (" """))) (; ";"))) (labeled_statement "LAB_002567d9:\n    pcVar1 = (char *)gettext(pcVar1);" (statement_identifier "LAB_002567d9") (: ":") (expression_statement "pcVar1 = (char *)gettext(pcVar1);" (assignment_expression "pcVar1 = (char *)gettext(pcVar1)" (identifier "pcVar1") (= "=") (cast_expression "(char *)gettext(pcVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext(pcVar1)" (identifier "gettext") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))))) (; ";"))) (expression_statement "sVar2 = strlen(pcVar1);" (assignment_expression "sVar2 = strlen(pcVar1)" (identifier "sVar2") (= "=") (call_expression "strlen(pcVar1)" (identifier "strlen") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")")))) (; ";")) (expression_statement "FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);" (call_expression "FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2)" (identifier "FUN_003b6cc0") (argument_list "(param_6,0,param_6[1],pcVar1,sVar2)" (( "(") (identifier "param_6") (, ",") (number_literal "0") (, ",") (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "pcVar1") (, ",") (identifier "sVar2") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar5 = (uint)*(byte *)(param_1 + 6);" (assignment_expression "uVar5 = (uint)*(byte *)(param_1 + 6)" (identifier "uVar5") (= "=") (binary_expression "(uint)*(byte *)(param_1 + 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_1 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 6)" (( "(") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if (uVar5 == 1) {\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }\n  else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" (if "if") (parenthesized_expression "(uVar5 == 1)" (( "(") (binary_expression "uVar5 == 1" (identifier "uVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    uVar5 = (uint)*(byte *)(param_1 + 4);\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }\n    if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }\n    uVar8 = (uint)*(byte *)(param_1 + 5);\n    if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }\n    if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar8);\n    local_134 = local_12c;\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    local_140 = local_12c;\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_140) goto LAB_002568c9;\n    if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }\n    *param_6 = local_134;\n    param_6[1] = local_138;\n    param_6[2] = local_12c[0];\n  }" ({ "{") (expression_statement "uVar5 = (uint)*(byte *)(param_1 + 4);" (assignment_expression "uVar5 = (uint)*(byte *)(param_1 + 4)" (identifier "uVar5") (= "=") (binary_expression "(uint)*(byte *)(param_1 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar5 == 0) {\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar1 = "invalid ELF class 0";\n      goto LAB_002567d9;\n    }" ({ "{") (expression_statement "pcVar1 = "invalid ELF class 0";" (assignment_expression "pcVar1 = "invalid ELF class 0"" (identifier "pcVar1") (= "=") (string_literal ""invalid ELF class 0"" (" """) (string_content "invalid ELF class 0") (" """))) (; ";")) (goto_statement "goto LAB_002567d9;" (goto "goto") (statement_identifier "LAB_002567d9") (; ";")) (} "}"))) (if_statement "if (1 < uVar5 - 1) {\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }" (if "if") (parenthesized_expression "(1 < uVar5 - 1)" (( "(") (binary_expression "1 < uVar5 - 1" (number_literal "1") (< "<") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1"))) () ")")) (compound_statement "{\n      pcVar1 = (char *)gettext("unsupported ELF class %d");\n      snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n      ppcVar3 = local_11c;\n      do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);\n      bVar10 = (uVar8 & 0x8080) == 0;\n      if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }\n      pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));\n      local_134 = local_12c;\n      local_138 = pcVar1;\n      if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }\n      *(char *)((int)local_134 + (int)local_138) = '\0';\n      ppcVar3 = (char **)*param_6;\n      local_130 = local_138;\n      if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }\n      goto LAB_00256751;\n    }" ({ "{") (expression_statement "pcVar1 = (char *)gettext("unsupported ELF class %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF class %d")" (identifier "pcVar1") (= "=") (cast_expression "(char *)gettext("unsupported ELF class %d")" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext("unsupported ELF class %d")" (identifier "gettext") (argument_list "("unsupported ELF class %d")" (( "(") (string_literal ""unsupported ELF class %d"" (" """) (string_content "unsupported ELF class %d") (" """)) () ")"))))) (; ";")) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar5);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar5)" (identifier "snprintf") (argument_list "((char *)local_11c,0x100,pcVar1,uVar5)" (( "(") (cast_expression "(char *)local_11c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_11c")) (, ",") (number_literal "0x100") (, ",") (identifier "pcVar1") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" (identifier "ppcVar3") (= "=") (identifier "local_11c")) (; ";")) (do_statement "do {\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      } while (uVar5 == 0);" (do "do") (compound_statement "{\n        ppcVar6 = ppcVar3;\n        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n        uVar5 = uVar8 & 0x80808080;\n        ppcVar3 = ppcVar6 + 1;\n      }" ({ "{") (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" (identifier "ppcVar6") (= "=") (identifier "ppcVar3")) (; ";")) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (identifier "uVar8") (= "=") (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*ppcVar6 + -0x1010101)" (( "(") (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" (* "*") (identifier "ppcVar6")) (+ "+") (number_literal "-0x1010101")) () ")"))) (& "&") (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" (~ "~") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "ppcVar6")))) (; ";")) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" (identifier "uVar5") (= "=") (binary_expression "uVar8 & 0x80808080" (identifier "uVar8") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" (identifier "ppcVar3") (= "=") (binary_expression "ppcVar6 + 1" (identifier "ppcVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" (identifier "bVar10") (= "=") (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" (( "(") (binary_expression "uVar8 & 0x8080" (identifier "uVar8") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar10) {\n        uVar5 = uVar5 >> 0x10;\n      }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n        uVar5 = uVar5 >> 0x10;\n      }" ({ "{") (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" (identifier "uVar5") (= "=") (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar10) {\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n        ppcVar3 = (char **)((int)ppcVar6 + 6);\n      }" ({ "{") (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" (identifier "ppcVar3") (= "=") (cast_expression "(char **)((int)ppcVar6 + 6)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar6 + 6)" (( "(") (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar6")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" (identifier "pcVar1") (= "=") (cast_expression "(char *)((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c))" (( "(") (binary_expression "(int)ppcVar3 +\n                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar3")) (+ "+") (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (( "(") (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" (( "(") (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" (number_literal "-3") (- "-") (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" (identifier "CARRY1") (argument_list "((byte)uVar5,(byte)uVar5)" (( "(") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) (, ",") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) () ")"))))) () ")")) (- "-") (cast_expression "(int)local_11c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_11c"))) () ")"))) () ")")))) (; ";")) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" (identifier "local_134") (= "=") (identifier "local_12c")) (; ";")) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" (identifier "local_138") (= "=") (identifier "pcVar1")) (; ";")) (if_statement "if (pcVar1 < (char *)0x10) {\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }\n      else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(pcVar1 < (char *)0x10)" (( "(") (binary_expression "pcVar1 < (char *)0x10" (identifier "pcVar1") (< "<") (cast_expression "(char *)0x10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) () ")")) (compound_statement "{\n        if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;\n      }" ({ "{") (if_statement "if (pcVar1 == (char *)0x1) {\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }\n        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;" (if "if") (parenthesized_expression "(pcVar1 == (char *)0x1)" (( "(") (binary_expression "pcVar1 == (char *)0x1" (identifier "pcVar1") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n        }" ({ "{") (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (identifier "CONCAT31") (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" (( "(") (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_00256a90;" (else "else") (if_statement "if (pcVar1 != (char *)0x0) goto LAB_00256a90;" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00256a90;" (goto "goto") (statement_identifier "LAB_00256a90") (; ";"))))) (} "}")) (else_clause "else {\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n        local_12c[0] = local_138;\nLAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }\n      }" ({ "{") (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" (identifier "local_134") (= "=") (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_003b5790(&local_134,&local_138,0)" (identifier "FUN_003b5790") (argument_list "(&local_134,&local_138,0)" (( "(") (pointer_expression "&local_134" (& "&") (identifier "local_134")) (, ",") (pointer_expression "&local_138" (& "&") (identifier "local_138")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_138")) (; ";")) (labeled_statement "LAB_00256a90:\n        if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" (statement_identifier "LAB_00256a90") (: ":") (if_statement "if (pcVar1 < (char *)0x4) {\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }\n        else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(pcVar1 < (char *)0x4)" (( "(") (binary_expression "pcVar1 < (char *)0x4" (identifier "pcVar1") (< "<") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n          if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }\n        }" ({ "{") (if_statement "if (pcVar1 != (char *)0x0) {\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(undefined1 *)local_134 = local_11c[0]._0_1_;\n            if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }\n          }" ({ "{") (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" (* "*") (cast_expression "(undefined1 *)local_134" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_134"))) (= "=") (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_"))) (; ";")) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }" (if "if") (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" (( "(") (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" (( "(") (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar1")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n            }" ({ "{") (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" (* "*") (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" (( "(") (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)(pcVar1 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -2)" (( "(") (binary_expression "pcVar1 + -2" (identifier "pcVar1") (+ "+") (number_literal "-2")) () ")")))) () ")")))) (= "=") (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (* "*") (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" (( "(") (binary_expression "acStack_123 + (int)(pcVar1 + 5)" (identifier "acStack_123") (+ "+") (cast_expression "(int)(pcVar1 + 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + 5)" (( "(") (binary_expression "pcVar1 + 5" (identifier "pcVar1") (+ "+") (number_literal "5")) () ")")))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" (else "else") (compound_statement "{\n          *local_134 = local_11c[0];\n          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n          puVar7 = (undefined4 *)((int)local_11c - iVar4);\n          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }\n        }" ({ "{") (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" (* "*") (identifier "local_134")) (= "=") (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" (* "*") (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" (( "(") (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)(pcVar1 + -4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -4)" (( "(") (binary_expression "pcVar1 + -4" (identifier "pcVar1") (+ "+") (number_literal "-4")) () ")")))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (* "*") (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" (( "(") (binary_expression "acStack_123 + (int)(pcVar1 + 3)" (identifier "acStack_123") (+ "+") (cast_expression "(int)(pcVar1 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + 3)" (( "(") (binary_expression "pcVar1 + 3" (identifier "pcVar1") (+ "+") (number_literal "3")) () ")")))) () ")"))))) (; ";")) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (identifier "iVar4") (= "=") (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (- "-") (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_134 + 1)" (( "(") (binary_expression "local_134 + 1" (identifier "local_134") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)((int)local_11c - iVar4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_11c - iVar4)" (( "(") (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_11c")) (- "-") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_134 + 1)" (( "(") (binary_expression "local_134 + 1" (identifier "local_134") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) (; ";")) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }" (for "for") (( "(") (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" (identifier "uVar5") (= "=") (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar1 + iVar4)" (( "(") (binary_expression "pcVar1 + iVar4" (identifier "pcVar1") (+ "+") (identifier "iVar4")) () ")"))) (>> ">>") (number_literal "2"))) (; ";") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar5 = uVar5 - 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n            *puVar9 = *puVar7;\n            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n          }" ({ "{") (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" (identifier "puVar7") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" (identifier "puVar9") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))))) (} "}")))) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" (* "*") (cast_expression "(char *)((int)local_134 + (int)local_138)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)local_138)" (( "(") (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)local_138" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_138"))) () ")")))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" (identifier "ppcVar3") (= "=") (cast_expression "(char **)*param_6" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" (identifier "local_130") (= "=") (identifier "local_138")) (; ";")) (if_statement "if (local_134 == local_12c) {\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }" (if "if") (parenthesized_expression "(local_134 == local_12c)" (( "(") (binary_expression "local_134 == local_12c" (identifier "local_134") (== "==") (identifier "local_12c")) () ")")) (compound_statement "{\nLAB_002568c9:\n        local_140 = local_12c;\n        local_138 = local_130;\n        if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }\n        param_6[1] = local_130;\n        *(char *)((int)ppcVar3 + (int)local_130) = '\0';\n        pcVar1 = local_12c[0];\n        goto LAB_0025679c;\n      }" ({ "{") (labeled_statement "LAB_002568c9:\n        local_140 = local_12c;" (statement_identifier "LAB_002568c9") (: ":") (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" (identifier "local_140") (= "=") (identifier "local_12c")) (; ";"))) (expression_statement "local_138 = local_130;" (assignment_expression "local_138 = local_130" (identifier "local_138") (= "=") (identifier "local_130")) (; ";")) (if_statement "if (local_130 != (char *)0x0) {\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }" (if "if") (parenthesized_expression "(local_130 != (char *)0x0)" (( "(") (binary_expression "local_130 != (char *)0x0" (identifier "local_130") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }\n        }" ({ "{") (if_statement "if (local_130 == (char *)0x1) {\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }\n          else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" (if "if") (parenthesized_expression "(local_130 == (char *)0x1)" (( "(") (binary_expression "local_130 == (char *)0x1" (identifier "local_130") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n            ppcVar3 = (char **)*param_6;\n          }" ({ "{") (expression_statement "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_;" (assignment_expression "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_" (pointer_expression "*(undefined1 *)ppcVar3" (* "*") (cast_expression "(undefined1 *)ppcVar3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppcVar3"))) (= "=") (field_expression "local_12c[0]._0_1_" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_"))) (; ";")) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" (identifier "ppcVar3") (= "=") (cast_expression "(char **)*param_6" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (} "}")) (else_clause "else {\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" (else "else") (compound_statement "{\n            memcpy(ppcVar3,local_140,(size_t)local_130);\n            ppcVar3 = (char **)*param_6;\n          }" ({ "{") (expression_statement "memcpy(ppcVar3,local_140,(size_t)local_130);" (call_expression "memcpy(ppcVar3,local_140,(size_t)local_130)" (identifier "memcpy") (argument_list "(ppcVar3,local_140,(size_t)local_130)" (( "(") (identifier "ppcVar3") (, ",") (identifier "local_140") (, ",") (cast_expression "(size_t)local_130" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_130")) () ")"))) (; ";")) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" (identifier "ppcVar3") (= "=") (cast_expression "(char **)*param_6" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_130")) (; ";")) (expression_statement "*(char *)((int)ppcVar3 + (int)local_130) = '\0';" (assignment_expression "*(char *)((int)ppcVar3 + (int)local_130) = '\0'" (pointer_expression "*(char *)((int)ppcVar3 + (int)local_130)" (* "*") (cast_expression "(char *)((int)ppcVar3 + (int)local_130)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar3 + (int)local_130)" (( "(") (binary_expression "(int)ppcVar3 + (int)local_130" (cast_expression "(int)ppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar3")) (+ "+") (cast_expression "(int)local_130" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_130"))) () ")")))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" (identifier "pcVar1") (= "=") (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (goto_statement "goto LAB_0025679c;" (goto "goto") (statement_identifier "LAB_0025679c") (; ";")) (} "}"))) (goto_statement "goto LAB_00256751;" (goto "goto") (statement_identifier "LAB_00256751") (; ";")) (} "}"))) (expression_statement "uVar8 = (uint)*(byte *)(param_1 + 5);" (assignment_expression "uVar8 = (uint)*(byte *)(param_1 + 5)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)(param_1 + 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_1 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (if_statement "if (uVar8 == 0) {\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar1 = "invalid ELF data encoding";\n      goto LAB_002567d9;\n    }" ({ "{") (expression_statement "pcVar1 = "invalid ELF data encoding";" (assignment_expression "pcVar1 = "invalid ELF data encoding"" (identifier "pcVar1") (= "=") (string_literal ""invalid ELF data encoding"" (" """) (string_content "invalid ELF data encoding") (" """))) (; ";")) (goto_statement "goto LAB_002567d9;" (goto "goto") (statement_identifier "LAB_002567d9") (; ";")) (} "}"))) (if_statement "if (uVar8 - 1 < 2) {\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }" (if "if") (parenthesized_expression "(uVar8 - 1 < 2)" (( "(") (binary_expression "uVar8 - 1 < 2" (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      *(bool *)param_5 = uVar8 == 2;\n      if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }\n      goto LAB_002567d0;\n    }" ({ "{") (expression_statement "*(bool *)param_5 = uVar8 == 2;" (assignment_expression "*(bool *)param_5 = uVar8 == 2" (pointer_expression "*(bool *)param_5" (* "*") (cast_expression "(bool *)param_5" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_5"))) (= "=") (binary_expression "uVar8 == 2" (identifier "uVar8") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (uVar5 == 1) {\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }\n      else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" (if "if") (parenthesized_expression "(uVar5 == 1)" (( "(") (binary_expression "uVar5 == 1" (identifier "uVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }\n      }" ({ "{") (if_statement "if (-param_3 < (int)(uint)(0x33 < param_2)) {\n          *param_4 = 0x20;\n          return 1;\n        }" (if "if") (parenthesized_expression "(-param_3 < (int)(uint)(0x33 < param_2))" (( "(") (binary_expression "-param_3 < (int)(uint)(0x33 < param_2)" (unary_expression "-param_3" (- "-") (identifier "param_3")) (< "<") (cast_expression "(int)(uint)(0x33 < param_2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(0x33 < param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x33 < param_2)" (( "(") (binary_expression "0x33 < param_2" (number_literal "0x33") (< "<") (identifier "param_2")) () ")"))))) () ")")) (compound_statement "{\n          *param_4 = 0x20;\n          return 1;\n        }" ({ "{") (expression_statement "*param_4 = 0x20;" (assignment_expression "*param_4 = 0x20" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0x20")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (else_clause "else if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" (else "else") (if_statement "if (-param_3 < (int)(uint)(0x3f < param_2)) {\n        *param_4 = 0x40;\n        return 1;\n      }" (if "if") (parenthesized_expression "(-param_3 < (int)(uint)(0x3f < param_2))" (( "(") (binary_expression "-param_3 < (int)(uint)(0x3f < param_2)" (unary_expression "-param_3" (- "-") (identifier "param_3")) (< "<") (cast_expression "(int)(uint)(0x3f < param_2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(0x3f < param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x3f < param_2)" (( "(") (binary_expression "0x3f < param_2" (number_literal "0x3f") (< "<") (identifier "param_2")) () ")"))))) () ")")) (compound_statement "{\n        *param_4 = 0x40;\n        return 1;\n      }" ({ "{") (expression_statement "*param_4 = 0x40;" (assignment_expression "*param_4 = 0x40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0x40")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))))) (goto_statement "goto LAB_002567d0;" (goto "goto") (statement_identifier "LAB_002567d0") (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)gettext("unsupported ELF data encoding %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF data encoding %d")" (identifier "pcVar1") (= "=") (cast_expression "(char *)gettext("unsupported ELF data encoding %d")" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext("unsupported ELF data encoding %d")" (identifier "gettext") (argument_list "("unsupported ELF data encoding %d")" (( "(") (string_literal ""unsupported ELF data encoding %d"" (" """) (string_content "unsupported ELF data encoding %d") (" """)) () ")"))))) (; ";")) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar8);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar8)" (identifier "snprintf") (argument_list "((char *)local_11c,0x100,pcVar1,uVar8)" (( "(") (cast_expression "(char *)local_11c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_11c")) (, ",") (number_literal "0x100") (, ",") (identifier "pcVar1") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" (identifier "local_134") (= "=") (identifier "local_12c")) (; ";")) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" (identifier "ppcVar3") (= "=") (identifier "local_11c")) (; ";")) (do_statement "do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);" (do "do") (compound_statement "{\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    }" ({ "{") (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" (identifier "ppcVar6") (= "=") (identifier "ppcVar3")) (; ";")) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (identifier "uVar8") (= "=") (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*ppcVar6 + -0x1010101)" (( "(") (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" (* "*") (identifier "ppcVar6")) (+ "+") (number_literal "-0x1010101")) () ")"))) (& "&") (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" (~ "~") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "ppcVar6")))) (; ";")) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" (identifier "uVar5") (= "=") (binary_expression "uVar8 & 0x80808080" (identifier "uVar8") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" (identifier "ppcVar3") (= "=") (binary_expression "ppcVar6 + 1" (identifier "ppcVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" (identifier "bVar10") (= "=") (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" (( "(") (binary_expression "uVar8 & 0x8080" (identifier "uVar8") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n      uVar5 = uVar5 >> 0x10;\n    }" ({ "{") (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" (identifier "uVar5") (= "=") (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" ({ "{") (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" (identifier "ppcVar3") (= "=") (cast_expression "(char **)((int)ppcVar6 + 6)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar6 + 6)" (( "(") (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar6")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" (identifier "pcVar1") (= "=") (cast_expression "(char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" (( "(") (binary_expression "(int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar3")) (+ "+") (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (( "(") (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" (( "(") (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" (number_literal "-3") (- "-") (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" (identifier "CARRY1") (argument_list "((byte)uVar5,(byte)uVar5)" (( "(") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) (, ",") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) () ")"))))) () ")")) (- "-") (cast_expression "(int)local_11c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_11c"))) () ")"))) () ")")))) (; ";")) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" (identifier "local_138") (= "=") (identifier "pcVar1")) (; ";")) (if_statement "if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(pcVar1 < (char *)0x10)" (( "(") (binary_expression "pcVar1 < (char *)0x10" (identifier "pcVar1") (< "<") (cast_expression "(char *)0x10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) () ")")) (compound_statement "{\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;\n    }" ({ "{") (if_statement "if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;" (if "if") (parenthesized_expression "(pcVar1 == (char *)0x1)" (( "(") (binary_expression "pcVar1 == (char *)0x1" (identifier "pcVar1") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }" ({ "{") (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (identifier "CONCAT31") (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" (( "(") (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_00256c40;" (else "else") (if_statement "if (pcVar1 != (char *)0x0) goto LAB_00256c40;" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00256c40;" (goto "goto") (statement_identifier "LAB_00256c40") (; ";"))))) (} "}")) (else_clause "else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" ({ "{") (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" (identifier "local_134") (= "=") (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_003b5790(&local_134,&local_138,0)" (identifier "FUN_003b5790") (argument_list "(&local_134,&local_138,0)" (( "(") (pointer_expression "&local_134" (& "&") (identifier "local_134")) (, ",") (pointer_expression "&local_138" (& "&") (identifier "local_138")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_138")) (; ";")) (labeled_statement "LAB_00256c40:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" (statement_identifier "LAB_00256c40") (: ":") (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" (if "if") (parenthesized_expression "(pcVar1 < (char *)0x4)" (( "(") (binary_expression "pcVar1 < (char *)0x4" (identifier "pcVar1") (< "<") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }" ({ "{") (if_statement "if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" ({ "{") (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" (* "*") (cast_expression "(undefined1 *)local_134" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_134"))) (= "=") (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_"))) (; ";")) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" (if "if") (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" (( "(") (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" (( "(") (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar1")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" ({ "{") (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" (* "*") (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" (( "(") (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)(pcVar1 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -2)" (( "(") (binary_expression "pcVar1 + -2" (identifier "pcVar1") (+ "+") (number_literal "-2")) () ")")))) () ")")))) (= "=") (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (* "*") (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" (( "(") (binary_expression "acStack_123 + (int)(pcVar1 + 5)" (identifier "acStack_123") (+ "+") (cast_expression "(int)(pcVar1 + 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + 5)" (( "(") (binary_expression "pcVar1 + 5" (identifier "pcVar1") (+ "+") (number_literal "5")) () ")")))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" (else "else") (compound_statement "{\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" ({ "{") (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" (* "*") (identifier "local_134")) (= "=") (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" (* "*") (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" (( "(") (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)(pcVar1 + -4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -4)" (( "(") (binary_expression "pcVar1 + -4" (identifier "pcVar1") (+ "+") (number_literal "-4")) () ")")))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (* "*") (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" (( "(") (binary_expression "acStack_123 + (int)(pcVar1 + 3)" (identifier "acStack_123") (+ "+") (cast_expression "(int)(pcVar1 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + 3)" (( "(") (binary_expression "pcVar1 + 3" (identifier "pcVar1") (+ "+") (number_literal "3")) () ")")))) () ")"))))) (; ";")) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (identifier "iVar4") (= "=") (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (- "-") (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_134 + 1)" (( "(") (binary_expression "local_134 + 1" (identifier "local_134") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)((int)local_11c - iVar4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_11c - iVar4)" (( "(") (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_11c")) (- "-") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_134 + 1)" (( "(") (binary_expression "local_134 + 1" (identifier "local_134") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) (; ";")) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" (for "for") (( "(") (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" (identifier "uVar5") (= "=") (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar1 + iVar4)" (( "(") (binary_expression "pcVar1 + iVar4" (identifier "pcVar1") (+ "+") (identifier "iVar4")) () ")"))) (>> ">>") (number_literal "2"))) (; ";") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar5 = uVar5 - 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" ({ "{") (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" (identifier "puVar7") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" (identifier "puVar9") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))))) (} "}")))) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" (identifier "local_140") (= "=") (identifier "local_12c")) (; ";")) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" (* "*") (cast_expression "(char *)((int)local_134 + (int)local_138)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)local_138)" (( "(") (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)local_138" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_138"))) () ")")))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" (identifier "ppcVar3") (= "=") (cast_expression "(char **)*param_6" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" (identifier "local_130") (= "=") (identifier "local_138")) (; ";")) (if_statement "if (local_134 == local_140) goto LAB_002568c9;" (if "if") (parenthesized_expression "(local_134 == local_140)" (( "(") (binary_expression "local_134 == local_140" (identifier "local_134") (== "==") (identifier "local_140")) () ")")) (goto_statement "goto LAB_002568c9;" (goto "goto") (statement_identifier "LAB_002568c9") (; ";"))) (if_statement "if (ppcVar3 != (char **)(param_6 + 2)) {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }" (if "if") (parenthesized_expression "(ppcVar3 != (char **)(param_6 + 2))" (( "(") (binary_expression "ppcVar3 != (char **)(param_6 + 2)" (identifier "ppcVar3") (!= "!=") (cast_expression "(char **)(param_6 + 2)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_6 + 2)" (( "(") (binary_expression "param_6 + 2" (identifier "param_6") (+ "+") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_138;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\n      goto joined_r0x00256bac;\n    }" ({ "{") (expression_statement "pcVar1 = (char *)param_6[2];" (assignment_expression "pcVar1 = (char *)param_6[2]" (identifier "pcVar1") (= "=") (cast_expression "(char *)param_6[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "local_134")) (; ";")) (expression_statement "param_6[1] = local_138;" (assignment_expression "param_6[1] = local_138" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_138")) (; ";")) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_134 = ppcVar3;" (assignment_expression "local_134 = ppcVar3" (identifier "local_134") (= "=") (identifier "ppcVar3")) (; ";")) (goto_statement "goto joined_r0x00256bac;" (goto "goto") (statement_identifier "joined_r0x00256bac") (; ";")) (} "}"))) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "local_134")) (; ";")) (expression_statement "param_6[1] = local_138;" (assignment_expression "param_6[1] = local_138" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_138")) (; ";")) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" (else "else") (compound_statement "{\n    if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }\n    pcVar1 = (char *)gettext("unsupported ELF version %d");\n    snprintf((char *)local_11c,0x100,pcVar1,uVar5);\n    ppcVar3 = local_11c;\n    do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);\n    bVar10 = (uVar8 & 0x8080) == 0;\n    if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }\n    if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }\n    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );\n    local_134 = local_12c;\n    local_138 = pcVar1;\n    if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }\n    *(char *)((int)local_134 + (int)local_138) = '\0';\n    ppcVar3 = (char **)*param_6;\n    local_130 = local_138;\n    if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }\nLAB_00256751:\n    local_138 = local_130;\n    if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }\n  }" ({ "{") (if_statement "if (uVar5 == 0) {\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar1 = "invalid ELF version 0";\n      goto LAB_002567d9;\n    }" ({ "{") (expression_statement "pcVar1 = "invalid ELF version 0";" (assignment_expression "pcVar1 = "invalid ELF version 0"" (identifier "pcVar1") (= "=") (string_literal ""invalid ELF version 0"" (" """) (string_content "invalid ELF version 0") (" """))) (; ";")) (goto_statement "goto LAB_002567d9;" (goto "goto") (statement_identifier "LAB_002567d9") (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)gettext("unsupported ELF version %d");" (assignment_expression "pcVar1 = (char *)gettext("unsupported ELF version %d")" (identifier "pcVar1") (= "=") (cast_expression "(char *)gettext("unsupported ELF version %d")" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext("unsupported ELF version %d")" (identifier "gettext") (argument_list "("unsupported ELF version %d")" (( "(") (string_literal ""unsupported ELF version %d"" (" """) (string_content "unsupported ELF version %d") (" """)) () ")"))))) (; ";")) (expression_statement "snprintf((char *)local_11c,0x100,pcVar1,uVar5);" (call_expression "snprintf((char *)local_11c,0x100,pcVar1,uVar5)" (identifier "snprintf") (argument_list "((char *)local_11c,0x100,pcVar1,uVar5)" (( "(") (cast_expression "(char *)local_11c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_11c")) (, ",") (number_literal "0x100") (, ",") (identifier "pcVar1") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "ppcVar3 = local_11c;" (assignment_expression "ppcVar3 = local_11c" (identifier "ppcVar3") (= "=") (identifier "local_11c")) (; ";")) (do_statement "do {\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    } while (uVar5 == 0);" (do "do") (compound_statement "{\n      ppcVar6 = ppcVar3;\n      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;\n      uVar5 = uVar8 & 0x80808080;\n      ppcVar3 = ppcVar6 + 1;\n    }" ({ "{") (expression_statement "ppcVar6 = ppcVar3;" (assignment_expression "ppcVar6 = ppcVar3" (identifier "ppcVar6") (= "=") (identifier "ppcVar3")) (; ";")) (expression_statement "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;" (assignment_expression "uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (identifier "uVar8") (= "=") (binary_expression "(uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6" (call_expression "(uint)(*ppcVar6 + -0x1010101)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*ppcVar6 + -0x1010101)" (( "(") (binary_expression "*ppcVar6 + -0x1010101" (pointer_expression "*ppcVar6" (* "*") (identifier "ppcVar6")) (+ "+") (number_literal "-0x1010101")) () ")"))) (& "&") (binary_expression "~(uint)*ppcVar6" (unary_expression "~(uint)" (~ "~") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "ppcVar6")))) (; ";")) (expression_statement "uVar5 = uVar8 & 0x80808080;" (assignment_expression "uVar5 = uVar8 & 0x80808080" (identifier "uVar5") (= "=") (binary_expression "uVar8 & 0x80808080" (identifier "uVar8") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "ppcVar3 = ppcVar6 + 1;" (assignment_expression "ppcVar3 = ppcVar6 + 1" (identifier "ppcVar3") (= "=") (binary_expression "ppcVar6 + 1" (identifier "ppcVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar10 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar10 = (uVar8 & 0x8080) == 0" (identifier "bVar10") (= "=") (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" (( "(") (binary_expression "uVar8 & 0x8080" (identifier "uVar8") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar10) {\n      uVar5 = uVar5 >> 0x10;\n    }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n      uVar5 = uVar5 >> 0x10;\n    }" ({ "{") (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" (identifier "uVar5") (= "=") (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar10) {\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n      ppcVar3 = (char **)((int)ppcVar6 + 6);\n    }" ({ "{") (expression_statement "ppcVar3 = (char **)((int)ppcVar6 + 6);" (assignment_expression "ppcVar3 = (char **)((int)ppcVar6 + 6)" (identifier "ppcVar3") (= "=") (cast_expression "(char **)((int)ppcVar6 + 6)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar6 + 6)" (( "(") (binary_expression "(int)ppcVar6 + 6" (cast_expression "(int)ppcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar6")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     );" (assignment_expression "pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" (identifier "pcVar1") (= "=") (cast_expression "(char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)\n                     )" (( "(") (binary_expression "(int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (cast_expression "(int)ppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar3")) (+ "+") (parenthesized_expression "((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)" (( "(") (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" (( "(") (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" (number_literal "-3") (- "-") (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" (identifier "CARRY1") (argument_list "((byte)uVar5,(byte)uVar5)" (( "(") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) (, ",") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) () ")"))))) () ")")) (- "-") (cast_expression "(int)local_11c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_11c"))) () ")"))) () ")")))) (; ";")) (expression_statement "local_134 = local_12c;" (assignment_expression "local_134 = local_12c" (identifier "local_134") (= "=") (identifier "local_12c")) (; ";")) (expression_statement "local_138 = pcVar1;" (assignment_expression "local_138 = pcVar1" (identifier "local_138") (= "=") (identifier "pcVar1")) (; ";")) (if_statement "if (pcVar1 < (char *)0x10) {\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }\n    else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(pcVar1 < (char *)0x10)" (( "(") (binary_expression "pcVar1 < (char *)0x10" (identifier "pcVar1") (< "<") (cast_expression "(char *)0x10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) () ")")) (compound_statement "{\n      if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;\n    }" ({ "{") (if_statement "if (pcVar1 == (char *)0x1) {\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }\n      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;" (if "if") (parenthesized_expression "(pcVar1 == (char *)0x1)" (( "(") (binary_expression "pcVar1 == (char *)0x1" (identifier "pcVar1") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);\n      }" ({ "{") (expression_statement "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);" (assignment_expression "local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_)" (identifier "CONCAT31") (argument_list "(local_12c[0]._1_3_,local_11c[0]._0_1_)" (( "(") (field_expression "local_12c[0]._1_3_" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (pcVar1 != (char *)0x0) goto LAB_0025699d;" (else "else") (if_statement "if (pcVar1 != (char *)0x0) goto LAB_0025699d;" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025699d;" (goto "goto") (statement_identifier "LAB_0025699d") (; ";"))))) (} "}")) (else_clause "else {\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);\n      local_12c[0] = local_138;\nLAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }\n    }" ({ "{") (expression_statement "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);" (assignment_expression "local_134 = (char **)FUN_003b5790(&local_134,&local_138,0)" (identifier "local_134") (= "=") (cast_expression "(char **)FUN_003b5790(&local_134,&local_138,0)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_003b5790(&local_134,&local_138,0)" (identifier "FUN_003b5790") (argument_list "(&local_134,&local_138,0)" (( "(") (pointer_expression "&local_134" (& "&") (identifier "local_134")) (, ",") (pointer_expression "&local_138" (& "&") (identifier "local_138")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "local_12c[0] = local_138;" (assignment_expression "local_12c[0] = local_138" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_138")) (; ";")) (labeled_statement "LAB_0025699d:\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" (statement_identifier "LAB_0025699d") (: ":") (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }\n      else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" (if "if") (parenthesized_expression "(pcVar1 < (char *)0x4)" (( "(") (binary_expression "pcVar1 < (char *)0x4" (identifier "pcVar1") (< "<") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }\n      }" ({ "{") (if_statement "if (pcVar1 != (char *)0x0) {\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(undefined1 *)local_134 = local_11c[0]._0_1_;\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }\n        }" ({ "{") (expression_statement "*(undefined1 *)local_134 = local_11c[0]._0_1_;" (assignment_expression "*(undefined1 *)local_134 = local_11c[0]._0_1_" (pointer_expression "*(undefined1 *)local_134" (* "*") (cast_expression "(undefined1 *)local_134" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_134"))) (= "=") (field_expression "local_11c[0]._0_1_" (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_"))) (; ";")) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" (if "if") (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" (( "(") (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" (( "(") (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar1")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));\n          }" ({ "{") (expression_statement "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));" (assignment_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (pointer_expression "*(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" (* "*") (cast_expression "(undefined2 *)((int)local_134 + (int)(pcVar1 + -2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -2))" (( "(") (binary_expression "(int)local_134 + (int)(pcVar1 + -2)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)(pcVar1 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -2)" (( "(") (binary_expression "pcVar1 + -2" (identifier "pcVar1") (+ "+") (number_literal "-2")) () ")")))) () ")")))) (= "=") (pointer_expression "*(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (* "*") (cast_expression "(undefined2 *)(acStack_123 + (int)(pcVar1 + 5))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 5))" (( "(") (binary_expression "acStack_123 + (int)(pcVar1 + 5)" (identifier "acStack_123") (+ "+") (cast_expression "(int)(pcVar1 + 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + 5)" (( "(") (binary_expression "pcVar1 + 5" (identifier "pcVar1") (+ "+") (number_literal "5")) () ")")))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" (else "else") (compound_statement "{\n        *local_134 = local_11c[0];\n        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));\n        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);\n        puVar7 = (undefined4 *)((int)local_11c - iVar4);\n        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }\n      }" ({ "{") (expression_statement "*local_134 = local_11c[0];" (assignment_expression "*local_134 = local_11c[0]" (pointer_expression "*local_134" (* "*") (identifier "local_134")) (= "=") (subscript_expression "local_11c[0]" (identifier "local_11c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));" (assignment_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (pointer_expression "*(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" (* "*") (cast_expression "(undefined4 *)((int)local_134 + (int)(pcVar1 + -4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)(pcVar1 + -4))" (( "(") (binary_expression "(int)local_134 + (int)(pcVar1 + -4)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)(pcVar1 + -4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -4)" (( "(") (binary_expression "pcVar1 + -4" (identifier "pcVar1") (+ "+") (number_literal "-4")) () ")")))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (* "*") (cast_expression "(undefined4 *)(acStack_123 + (int)(pcVar1 + 3))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(acStack_123 + (int)(pcVar1 + 3))" (( "(") (binary_expression "acStack_123 + (int)(pcVar1 + 3)" (identifier "acStack_123") (+ "+") (cast_expression "(int)(pcVar1 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + 3)" (( "(") (binary_expression "pcVar1 + 3" (identifier "pcVar1") (+ "+") (number_literal "3")) () ")")))) () ")"))))) (; ";")) (expression_statement "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (identifier "iVar4") (= "=") (binary_expression "(int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc)" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (- "-") (cast_expression "(int)((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_134 + 1)" (( "(") (binary_expression "local_134 + 1" (identifier "local_134") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined4 *)((int)local_11c - iVar4);" (assignment_expression "puVar7 = (undefined4 *)((int)local_11c - iVar4)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)((int)local_11c - iVar4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_11c - iVar4)" (( "(") (binary_expression "(int)local_11c - iVar4" (cast_expression "(int)local_11c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_11c")) (- "-") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);" (assignment_expression "puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(local_134 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_134 + 1) & 0xfffffffc" (call_expression "(uint)(local_134 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_134 + 1)" (( "(") (binary_expression "local_134 + 1" (identifier "local_134") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) (; ";")) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" (for "for") (( "(") (assignment_expression "uVar5 = (uint)(pcVar1 + iVar4) >> 2" (identifier "uVar5") (= "=") (binary_expression "(uint)(pcVar1 + iVar4) >> 2" (call_expression "(uint)(pcVar1 + iVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar1 + iVar4)" (( "(") (binary_expression "pcVar1 + iVar4" (identifier "pcVar1") (+ "+") (identifier "iVar4")) () ")"))) (>> ">>") (number_literal "2"))) (; ";") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar5 = uVar5 - 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n          *puVar9 = *puVar7;\n          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;\n          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;\n        }" ({ "{") (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar7 = puVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar11 * -2 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + (uint)bVar11 * -2 + 1" (binary_expression "puVar7 + (uint)bVar11 * -2" (identifier "puVar7") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar9 = puVar9 + (uint)bVar11 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (uint)bVar11 * -2 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + (uint)bVar11 * -2 + 1" (binary_expression "puVar9 + (uint)bVar11 * -2" (identifier "puVar9") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))))) (} "}")))) (expression_statement "*(char *)((int)local_134 + (int)local_138) = '\0';" (assignment_expression "*(char *)((int)local_134 + (int)local_138) = '\0'" (pointer_expression "*(char *)((int)local_134 + (int)local_138)" (* "*") (cast_expression "(char *)((int)local_134 + (int)local_138)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_134 + (int)local_138)" (( "(") (binary_expression "(int)local_134 + (int)local_138" (cast_expression "(int)local_134" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_134")) (+ "+") (cast_expression "(int)local_138" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_138"))) () ")")))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" (identifier "ppcVar3") (= "=") (cast_expression "(char **)*param_6" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (expression_statement "local_130 = local_138;" (assignment_expression "local_130 = local_138" (identifier "local_130") (= "=") (identifier "local_138")) (; ";")) (if_statement "if (local_134 == local_12c) {\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }" (if "if") (parenthesized_expression "(local_134 == local_12c)" (( "(") (binary_expression "local_134 == local_12c" (identifier "local_134") (== "==") (identifier "local_12c")) () ")")) (compound_statement "{\n      pcVar1 = local_138;\n      if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }\n      param_6[1] = pcVar1;\n      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';\n      pcVar1 = local_12c[0];\n      goto LAB_0025679c;\n    }" ({ "{") (expression_statement "pcVar1 = local_138;" (assignment_expression "pcVar1 = local_138" (identifier "pcVar1") (= "=") (identifier "local_138")) (; ";")) (if_statement "if (local_138 != (char *)0x0) {\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }" (if "if") (parenthesized_expression "(local_138 != (char *)0x0)" (( "(") (binary_expression "local_138 != (char *)0x0" (identifier "local_138") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }\n      }" ({ "{") (if_statement "if (local_138 == (char *)0x1) {\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }\n        else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" (if "if") (parenthesized_expression "(local_138 == (char *)0x1)" (( "(") (binary_expression "local_138 == (char *)0x1" (identifier "local_138") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;\n          ppcVar3 = (char **)*param_6;\n        }" ({ "{") (expression_statement "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_;" (assignment_expression "*(undefined1 *)ppcVar3 = local_12c[0]._0_1_" (pointer_expression "*(undefined1 *)ppcVar3" (* "*") (cast_expression "(undefined1 *)ppcVar3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppcVar3"))) (= "=") (field_expression "local_12c[0]._0_1_" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_"))) (; ";")) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" (identifier "ppcVar3") (= "=") (cast_expression "(char **)*param_6" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (} "}")) (else_clause "else {\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" (else "else") (compound_statement "{\n          memcpy(ppcVar3,local_12c,(size_t)local_138);\n          ppcVar3 = (char **)*param_6;\n          pcVar1 = local_130;\n        }" ({ "{") (expression_statement "memcpy(ppcVar3,local_12c,(size_t)local_138);" (call_expression "memcpy(ppcVar3,local_12c,(size_t)local_138)" (identifier "memcpy") (argument_list "(ppcVar3,local_12c,(size_t)local_138)" (( "(") (identifier "ppcVar3") (, ",") (identifier "local_12c") (, ",") (cast_expression "(size_t)local_138" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_138")) () ")"))) (; ";")) (expression_statement "ppcVar3 = (char **)*param_6;" (assignment_expression "ppcVar3 = (char **)*param_6" (identifier "ppcVar3") (= "=") (cast_expression "(char **)*param_6" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (expression_statement "pcVar1 = local_130;" (assignment_expression "pcVar1 = local_130" (identifier "pcVar1") (= "=") (identifier "local_130")) (; ";")) (} "}")))) (} "}"))) (expression_statement "param_6[1] = pcVar1;" (assignment_expression "param_6[1] = pcVar1" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "*(char *)((int)ppcVar3 + (int)pcVar1) = '\0';" (assignment_expression "*(char *)((int)ppcVar3 + (int)pcVar1) = '\0'" (pointer_expression "*(char *)((int)ppcVar3 + (int)pcVar1)" (* "*") (cast_expression "(char *)((int)ppcVar3 + (int)pcVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcVar3 + (int)pcVar1)" (( "(") (binary_expression "(int)ppcVar3 + (int)pcVar1" (cast_expression "(int)ppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar3")) (+ "+") (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1"))) () ")")))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" (identifier "pcVar1") (= "=") (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (goto_statement "goto LAB_0025679c;" (goto "goto") (statement_identifier "LAB_0025679c") (; ";")) (} "}"))) (labeled_statement "LAB_00256751:\n    local_138 = local_130;" (statement_identifier "LAB_00256751") (: ":") (expression_statement "local_138 = local_130;" (assignment_expression "local_138 = local_130" (identifier "local_138") (= "=") (identifier "local_130")) (; ";"))) (if_statement "if (ppcVar3 == (char **)(param_6 + 2)) {\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }\n    else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" (if "if") (parenthesized_expression "(ppcVar3 == (char **)(param_6 + 2))" (( "(") (binary_expression "ppcVar3 == (char **)(param_6 + 2)" (identifier "ppcVar3") (== "==") (cast_expression "(char **)(param_6 + 2)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_6 + 2)" (( "(") (binary_expression "param_6 + 2" (identifier "param_6") (+ "+") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n    }" ({ "{") (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "local_134")) (; ";")) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_130")) (; ";")) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" (else "else") (compound_statement "{\n      pcVar1 = (char *)param_6[2];\n      *param_6 = local_134;\n      param_6[1] = local_130;\n      param_6[2] = local_12c[0];\n      local_134 = ppcVar3;\njoined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;\n    }" ({ "{") (expression_statement "pcVar1 = (char *)param_6[2];" (assignment_expression "pcVar1 = (char *)param_6[2]" (identifier "pcVar1") (= "=") (cast_expression "(char *)param_6[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "*param_6 = local_134;" (assignment_expression "*param_6 = local_134" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "local_134")) (; ";")) (expression_statement "param_6[1] = local_130;" (assignment_expression "param_6[1] = local_130" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_130")) (; ";")) (expression_statement "param_6[2] = local_12c[0];" (assignment_expression "param_6[2] = local_12c[0]" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_134 = ppcVar3;" (assignment_expression "local_134 = ppcVar3" (identifier "local_134") (= "=") (identifier "ppcVar3")) (; ";")) (labeled_statement "joined_r0x00256bac:\n      if (local_134 != (char **)0x0) goto LAB_0025679c;" (statement_identifier "joined_r0x00256bac") (: ":") (if_statement "if (local_134 != (char **)0x0) goto LAB_0025679c;" (if "if") (parenthesized_expression "(local_134 != (char **)0x0)" (( "(") (binary_expression "local_134 != (char **)0x0" (identifier "local_134") (!= "!=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025679c;" (goto "goto") (statement_identifier "LAB_0025679c") (; ";")))) (} "}")))) (} "}")))) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" (identifier "local_140") (= "=") (identifier "local_12c")) (; ";")) (expression_statement "local_134 = local_140;" (assignment_expression "local_134 = local_140" (identifier "local_134") (= "=") (identifier "local_140")) (; ";")) (expression_statement "pcVar1 = local_12c[0];" (assignment_expression "pcVar1 = local_12c[0]" (identifier "pcVar1") (= "=") (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (labeled_statement "LAB_0025679c:\n  local_12c[0] = pcVar1;" (statement_identifier "LAB_0025679c") (: ":") (expression_statement "local_12c[0] = pcVar1;" (assignment_expression "local_12c[0] = pcVar1" (subscript_expression "local_12c[0]" (identifier "local_12c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "pcVar1")) (; ";"))) (expression_statement "local_140 = local_12c;" (assignment_expression "local_140 = local_12c" (identifier "local_140") (= "=") (identifier "local_12c")) (; ";")) (expression_statement "local_130 = (char *)0x0;" (assignment_expression "local_130 = (char *)0x0" (identifier "local_130") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined1 *)local_134 = 0;" (assignment_expression "*(undefined1 *)local_134 = 0" (pointer_expression "*(undefined1 *)local_134" (* "*") (cast_expression "(undefined1 *)local_134" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_134"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_134 == local_140) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(local_134 == local_140)" (( "(") (binary_expression "local_134 == local_140" (identifier "local_134") (== "==") (identifier "local_140")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "FUN_003ae080(local_134);" (call_expression "FUN_003ae080(local_134)" (identifier "FUN_003ae080") (argument_list "(local_134)" (( "(") (identifier "local_134") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bool elfcpp::Elf_recognizer::function_1
               (type_1 *ehdr_buf,type_2 bufsize,int *size,bool *big_endian,type_3 *error)

{
  type_4 __dnew;
  char buf [256];
  
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))) right: (unary_expression argument: (identifier)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (unary_expression argument: (parenthesized_expression (identifier))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (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: (primitive_type)) 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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (number_literal)))))) (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: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (unary_expression argument: (parenthesized_expression (identifier))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (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: (primitive_type)) 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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (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: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (unary_expression argument: (parenthesized_expression (identifier))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (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: (primitive_type)) 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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4
MASKED(int param_1,uint param_2,int param_3,undefined4 *param_4,undefined4 param_5,
            undefined4 *param_6)

{
  char *pcVar1;
  size_t sVar2;
  char **ppcVar3;
  int iVar4;
  uint uVar5;
  char **ppcVar6;
  undefined4 *puVar7;
  uint uVar8;
  undefined4 *puVar9;
  bool bVar10;
  byte bVar11;
  char **local_140;
  char *local_138;
  char **local_134;
  char *local_130;
  char *local_12c [2];
  char acStack_123 [7];
  char *local_11c [66];
  undefined4 uStack_14;
  
  bVar11 = 0;
  uStack_14 = 0x2565f0;
  if ((int)(uint)(0xf < param_2) <= -param_3) {
LAB_002567d0:
    pcVar1 = "ELF file too short";
LAB_002567d9:
    pcVar1 = (char *)gettext(pcVar1);
    sVar2 = strlen(pcVar1);
    FUN_003b6cc0(param_6,0,param_6[1],pcVar1,sVar2);
    return 0;
  }
  uVar5 = (uint)*(byte *)(param_1 + 6);
  if (uVar5 == 1) {
    uVar5 = (uint)*(byte *)(param_1 + 4);
    if (uVar5 == 0) {
      pcVar1 = "invalid ELF class 0";
      goto LAB_002567d9;
    }
    if (1 < uVar5 - 1) {
      pcVar1 = (char *)gettext("unsupported ELF class %d");
      snprintf((char *)local_11c,0x100,pcVar1,uVar5);
      ppcVar3 = local_11c;
      do {
        ppcVar6 = ppcVar3;
        uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;
        uVar5 = uVar8 & 0x80808080;
        ppcVar3 = ppcVar6 + 1;
      } while (uVar5 == 0);
      bVar10 = (uVar8 & 0x8080) == 0;
      if (bVar10) {
        uVar5 = uVar5 >> 0x10;
      }
      if (bVar10) {
        ppcVar3 = (char **)((int)ppcVar6 + 6);
      }
      pcVar1 = (char *)((int)ppcVar3 +
                       ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c));
      local_134 = local_12c;
      local_138 = pcVar1;
      if (pcVar1 < (char *)0x10) {
        if (pcVar1 == (char *)0x1) {
          local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);
        }
        else if (pcVar1 != (char *)0x0) goto LAB_00256a90;
      }
      else {
        local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);
        local_12c[0] = local_138;
LAB_00256a90:
        if (pcVar1 < (char *)0x4) {
          if (pcVar1 != (char *)0x0) {
            *(undefined1 *)local_134 = local_11c[0]._0_1_;
            if (((uint)pcVar1 & 2) != 0) {
              *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =
                   *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));
            }
          }
        }
        else {
          *local_134 = local_11c[0];
          *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =
               *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));
          iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);
          puVar7 = (undefined4 *)((int)local_11c - iVar4);
          puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);
          for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
            *puVar9 = *puVar7;
            puVar7 = puVar7 + (uint)bVar11 * -2 + 1;
            puVar9 = puVar9 + (uint)bVar11 * -2 + 1;
          }
        }
      }
      *(char *)((int)local_134 + (int)local_138) = '\0';
      ppcVar3 = (char **)*param_6;
      local_130 = local_138;
      if (local_134 == local_12c) {
LAB_002568c9:
        local_140 = local_12c;
        local_138 = local_130;
        if (local_130 != (char *)0x0) {
          if (local_130 == (char *)0x1) {
            *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;
            ppcVar3 = (char **)*param_6;
          }
          else {
            memcpy(ppcVar3,local_140,(size_t)local_130);
            ppcVar3 = (char **)*param_6;
          }
        }
        param_6[1] = local_130;
        *(char *)((int)ppcVar3 + (int)local_130) = '\0';
        pcVar1 = local_12c[0];
        goto LAB_0025679c;
      }
      goto LAB_00256751;
    }
    uVar8 = (uint)*(byte *)(param_1 + 5);
    if (uVar8 == 0) {
      pcVar1 = "invalid ELF data encoding";
      goto LAB_002567d9;
    }
    if (uVar8 - 1 < 2) {
      *(bool *)param_5 = uVar8 == 2;
      if (uVar5 == 1) {
        if (-param_3 < (int)(uint)(0x33 < param_2)) {
          *param_4 = 0x20;
          return 1;
        }
      }
      else if (-param_3 < (int)(uint)(0x3f < param_2)) {
        *param_4 = 0x40;
        return 1;
      }
      goto LAB_002567d0;
    }
    pcVar1 = (char *)gettext("unsupported ELF data encoding %d");
    snprintf((char *)local_11c,0x100,pcVar1,uVar8);
    local_134 = local_12c;
    ppcVar3 = local_11c;
    do {
      ppcVar6 = ppcVar3;
      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;
      uVar5 = uVar8 & 0x80808080;
      ppcVar3 = ppcVar6 + 1;
    } while (uVar5 == 0);
    bVar10 = (uVar8 & 0x8080) == 0;
    if (bVar10) {
      uVar5 = uVar5 >> 0x10;
    }
    if (bVar10) {
      ppcVar3 = (char **)((int)ppcVar6 + 6);
    }
    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)
                     );
    local_138 = pcVar1;
    if (pcVar1 < (char *)0x10) {
      if (pcVar1 == (char *)0x1) {
        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);
      }
      else if (pcVar1 != (char *)0x0) goto LAB_00256c40;
    }
    else {
      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);
      local_12c[0] = local_138;
LAB_00256c40:
      if (pcVar1 < (char *)0x4) {
        if (pcVar1 != (char *)0x0) {
          *(undefined1 *)local_134 = local_11c[0]._0_1_;
          if (((uint)pcVar1 & 2) != 0) {
            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =
                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));
          }
        }
      }
      else {
        *local_134 = local_11c[0];
        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =
             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));
        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);
        puVar7 = (undefined4 *)((int)local_11c - iVar4);
        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);
        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
          *puVar9 = *puVar7;
          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;
          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;
        }
      }
    }
    local_140 = local_12c;
    *(char *)((int)local_134 + (int)local_138) = '\0';
    ppcVar3 = (char **)*param_6;
    local_130 = local_138;
    if (local_134 == local_140) goto LAB_002568c9;
    if (ppcVar3 != (char **)(param_6 + 2)) {
      pcVar1 = (char *)param_6[2];
      *param_6 = local_134;
      param_6[1] = local_138;
      param_6[2] = local_12c[0];
      local_134 = ppcVar3;
      goto joined_r0x00256bac;
    }
    *param_6 = local_134;
    param_6[1] = local_138;
    param_6[2] = local_12c[0];
  }
  else {
    if (uVar5 == 0) {
      pcVar1 = "invalid ELF version 0";
      goto LAB_002567d9;
    }
    pcVar1 = (char *)gettext("unsupported ELF version %d");
    snprintf((char *)local_11c,0x100,pcVar1,uVar5);
    ppcVar3 = local_11c;
    do {
      ppcVar6 = ppcVar3;
      uVar8 = (uint)(*ppcVar6 + -0x1010101) & ~(uint)*ppcVar6;
      uVar5 = uVar8 & 0x80808080;
      ppcVar3 = ppcVar6 + 1;
    } while (uVar5 == 0);
    bVar10 = (uVar8 & 0x8080) == 0;
    if (bVar10) {
      uVar5 = uVar5 >> 0x10;
    }
    if (bVar10) {
      ppcVar3 = (char **)((int)ppcVar6 + 6);
    }
    pcVar1 = (char *)((int)ppcVar3 + ((-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)local_11c)
                     );
    local_134 = local_12c;
    local_138 = pcVar1;
    if (pcVar1 < (char *)0x10) {
      if (pcVar1 == (char *)0x1) {
        local_12c[0] = (char *)CONCAT31(local_12c[0]._1_3_,local_11c[0]._0_1_);
      }
      else if (pcVar1 != (char *)0x0) goto LAB_0025699d;
    }
    else {
      local_134 = (char **)FUN_003b5790(&local_134,&local_138,0);
      local_12c[0] = local_138;
LAB_0025699d:
      if (pcVar1 < (char *)0x4) {
        if (pcVar1 != (char *)0x0) {
          *(undefined1 *)local_134 = local_11c[0]._0_1_;
          if (((uint)pcVar1 & 2) != 0) {
            *(undefined2 *)((int)local_134 + (int)(pcVar1 + -2)) =
                 *(undefined2 *)(acStack_123 + (int)(pcVar1 + 5));
          }
        }
      }
      else {
        *local_134 = local_11c[0];
        *(undefined4 *)((int)local_134 + (int)(pcVar1 + -4)) =
             *(undefined4 *)(acStack_123 + (int)(pcVar1 + 3));
        iVar4 = (int)local_134 - (int)((uint)(local_134 + 1) & 0xfffffffc);
        puVar7 = (undefined4 *)((int)local_11c - iVar4);
        puVar9 = (undefined4 *)((uint)(local_134 + 1) & 0xfffffffc);
        for (uVar5 = (uint)(pcVar1 + iVar4) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
          *puVar9 = *puVar7;
          puVar7 = puVar7 + (uint)bVar11 * -2 + 1;
          puVar9 = puVar9 + (uint)bVar11 * -2 + 1;
        }
      }
    }
    *(char *)((int)local_134 + (int)local_138) = '\0';
    ppcVar3 = (char **)*param_6;
    local_130 = local_138;
    if (local_134 == local_12c) {
      pcVar1 = local_138;
      if (local_138 != (char *)0x0) {
        if (local_138 == (char *)0x1) {
          *(undefined1 *)ppcVar3 = local_12c[0]._0_1_;
          ppcVar3 = (char **)*param_6;
        }
        else {
          memcpy(ppcVar3,local_12c,(size_t)local_138);
          ppcVar3 = (char **)*param_6;
          pcVar1 = local_130;
        }
      }
      param_6[1] = pcVar1;
      *(char *)((int)ppcVar3 + (int)pcVar1) = '\0';
      pcVar1 = local_12c[0];
      goto LAB_0025679c;
    }
LAB_00256751:
    local_138 = local_130;
    if (ppcVar3 == (char **)(param_6 + 2)) {
      *param_6 = local_134;
      param_6[1] = local_130;
      param_6[2] = local_12c[0];
    }
    else {
      pcVar1 = (char *)param_6[2];
      *param_6 = local_134;
      param_6[1] = local_130;
      param_6[2] = local_12c[0];
      local_134 = ppcVar3;
joined_r0x00256bac:
      if (local_134 != (char **)0x0) goto LAB_0025679c;
    }
  }
  local_140 = local_12c;
  local_134 = local_140;
  pcVar1 = local_12c[0];
LAB_0025679c:
  local_12c[0] = pcVar1;
  local_140 = local_12c;
  local_130 = (char *)0x0;
  *(undefined1 *)local_134 = 0;
  if (local_134 == local_140) {
    return 0;
  }
  FUN_003ae080(local_134);
  return 0;
}

