
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention */

void s_leb128(int sign)

{
  char cVar1;
  byte bVar2;
  uint uVar3;
  char *pcVar4;
  uint uVar5;
  int iVar6;
  symbolS *symbol;
  uint nchars;
  char *format;
  LITTLENUM_TYPE *pLVar7;
  segT paVar8;
  LITTLENUM_TYPE *pLVar9;
  bool bVar10;
  segT *sign_00;
  undefined *puVar11;
  byte local_54;
  LITTLENUM_TYPE *local_4c;
  uint nbytes;
  expressionS exp;
  
  sign_00 = &now_seg;
  puVar11 = PTR__bfd_std_section_0007ffa8;
  pcVar4 = input_line_pointer;
  do {
    input_line_pointer = pcVar4;
    expr(0,&exp,expr_defer);
    if ((byte)exp._16_1_ < 2) {
      pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);
      as_warn(pcVar4);
      exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;
      exp.X_add_number._4_4_ = 0;
      if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;
LAB_00032182:
      nbytes = 0xffffffff;
      iVar6 = check_eh_frame(&exp,&nbytes);
      if (iVar6 != 0) goto LAB_000323f2;
LAB_000321a5:
      uVar5 = exp.X_add_number._4_4_;
      pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;
      if (sign == 0) {
        nchars = 0;
        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;
        uVar3 = exp.X_add_number._4_4_;
        do {
          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);
          uVar3 = uVar3 >> 7;
          nchars = nchars + 1;
        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);
      }
      else {
        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);
      }
      pcVar4 = frag_more(nchars);
      uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);
      if (nchars < uVar5) {
                    /* WARNING: Subroutine does not return */
        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");
      }
    }
    else {
      if (exp._16_1_ == '\x06') {
        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=
            (int)-exp.X_add_number._4_4_) {
          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);
          as_bad(pcVar4);
          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;
          exp.X_add_number._4_4_ = 0;
          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;
          bVar10 = 0xfffffffe < (uint)abs_section_offset;
          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;
          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;
          goto LAB_00031fb8;
        }
        paVar8 = *sign_00;
LAB_00032225:
        if (paVar8 != (segT)(puVar11 + 0x180)) {
          if (exp._16_1_ == '\x02') goto LAB_000322f9;
LAB_000320cb:
          uVar5 = paVar8->flags;
          cVar1 = exp._16_1_;
          goto joined_r0x00032311;
        }
        if (exp._16_1_ == '\x02') goto LAB_0003236d;
      }
      else if (exp._16_1_ == '\x05') {
        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);
        as_warn(pcVar4);
        paVar8 = *sign_00;
        if (paVar8 != (segT)(puVar11 + 0x180)) {
LAB_000322f9:
          if (exp.X_add_number._4_4_ == 0 &&
              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;
          uVar5 = paVar8->flags;
          cVar1 = '\x02';
joined_r0x00032311:
          if ((uVar5 & 0x103) == 1) {
            pcVar4 = paVar8->name;
            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);
            as_bad(format,pcVar4);
          }
          nbytes = 0xffffffff;
          iVar6 = check_eh_frame(&exp,&nbytes);
          if (iVar6 != 0) {
LAB_000323f2:
                    /* WARNING: Subroutine does not return */
            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");
          }
          if (cVar1 == '\x02') goto LAB_000321a5;
          if (cVar1 == '\x06') {
            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;
            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&
               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {
              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;
              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);
            }
            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);
            uVar5 = uVar3;
            pcVar4 = frag_more(uVar3);
            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);
            if (uVar3 < uVar5) {
                    /* WARNING: Subroutine does not return */
              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");
            }
          }
          else {
            symbol = make_expr_symbol(&exp);
            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);
          }
          goto LAB_00031fb8;
        }
LAB_0003236d:
        if (exp.X_add_number._4_4_ == 0 &&
            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;
      }
      else {
        paVar8 = *sign_00;
        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;
        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;
        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {
          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;
          goto LAB_0003236d;
        }
        bVar2 = (byte)exp._17_1_ >> 1 & 1;
        DAT_00089904 = exp.X_add_number._4_4_;
        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;
        local_4c = (LITTLENUM_TYPE *)0x4;
        if (local_54 != (bVar2 ^ 1)) {
          local_4c = (LITTLENUM_TYPE *)0x5;
          DAT_00089908 = -(ushort)bVar2;
        }
        exp._16_1_ = 6;
        exp.X_add_number._4_4_ = 0;
        exp.X_add_number._0_4_ = local_4c;
        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;
      }
      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);
      as_bad(pcVar4);
LAB_00032279:
      bVar10 = 0xfffffffe < (uint)abs_section_offset;
      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;
      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;
    }
LAB_00031fb8:
    pcVar4 = input_line_pointer + 1;
    if (*input_line_pointer != ',') {
      demand_empty_rest_of_line();
      return;
    }
  } while( true );
}



void FUN_00031f30(int param_1)

{
  int *piVar1;
  uint *puVar2;
  int *piVar3;
  int iVar4;
  char *pcVar5;
  byte bVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  undefined4 *puVar14;
  uint uVar15;
  int unaff_EBP;
  byte local_54;
  uint local_4c;
  undefined4 local_34;
  undefined1 local_30 [8];
  uint local_28;
  uint local_24;
  byte local_20;
  byte local_1f;
  
  FUN_0001fe10();
  piVar1 = (int *)(unaff_EBP + 0x57806);
  iVar4 = *(int *)(unaff_EBP + 0x4e072);
  puVar2 = (uint *)(unaff_EBP + 0x57a3a);
  do {
    FUN_000221d0(0,local_30,2);
    if (local_20 < 2) {
      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);
      FUN_0002bc80(uVar10);
      local_28 = 0;
      local_24 = 0;
      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;
LAB_00032182:
      local_34 = 0xffffffff;
      iVar9 = FUN_0001fe30(local_30,&local_34);
      if (iVar9 != 0) goto LAB_000323f2;
LAB_000321a5:
      uVar8 = local_24;
      uVar7 = local_28;
      if (param_1 == 0) {
        uVar11 = 0;
        uVar13 = local_28;
        uVar15 = local_24;
        do {
          uVar13 = uVar13 >> 7 | uVar15 << 0x19;
          uVar15 = uVar15 >> 7;
          uVar11 = uVar11 + 1;
        } while (uVar15 != 0 || uVar13 != 0);
      }
      else {
        uVar11 = FUN_0002d520();
      }
      uVar10 = FUN_00024b20(uVar11);
      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);
      if (uVar11 < uVar7) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);
      }
    }
    else {
      if (local_20 == 6) {
        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {
          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);
          FUN_0002bd60(uVar10);
          local_28 = 0;
          local_24 = 0;
          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;
          uVar7 = *puVar2;
          *puVar2 = *puVar2 + 1;
          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)
          ;
          goto LAB_00031fb8;
        }
        puVar14 = (undefined4 *)*piVar1;
LAB_00032225:
        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {
          if (local_20 == 2) goto LAB_000322f9;
LAB_000320cb:
          uVar7 = puVar14[5];
          bVar6 = local_20;
          goto joined_r0x00032311;
        }
        if (local_20 == 2) goto LAB_0003236d;
      }
      else if (local_20 == 5) {
        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);
        FUN_0002bc80(uVar10);
        puVar14 = (undefined4 *)*piVar1;
        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {
LAB_000322f9:
          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;
          uVar7 = puVar14[5];
          bVar6 = 2;
joined_r0x00032311:
          if ((uVar7 & 0x103) == 1) {
            uVar10 = *puVar14;
            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);
            FUN_0002bd60(uVar12,uVar10);
          }
          local_34 = 0xffffffff;
          iVar9 = FUN_0001fe30(local_30,&local_34);
          if (iVar9 != 0) {
LAB_000323f2:
                    /* WARNING: Subroutine does not return */
            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);
          }
          if (bVar6 == 2) goto LAB_000321a5;
          if (bVar6 == 6) {
            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&
               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {
              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;
            }
            uVar7 = FUN_0002d560();
            FUN_00024b20(uVar7);
            uVar8 = FUN_0002d560();
            if (uVar7 < uVar8) {
                    /* WARNING: Subroutine does not return */
              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);
            }
          }
          else {
            uVar10 = FUN_00021220(local_30);
            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);
          }
          goto LAB_00031fb8;
        }
LAB_0003236d:
        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;
      }
      else {
        puVar14 = (undefined4 *)*piVar1;
        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;
        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;
        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {
          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;
          goto LAB_0003236d;
        }
        bVar6 = local_1f >> 1 & 1;
        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;
        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;
        local_4c = 4;
        if (local_54 != (bVar6 ^ 1)) {
          local_4c = 5;
          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;
        }
        local_20 = 6;
        local_24 = 0;
        local_28 = local_4c;
        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;
      }
      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);
      FUN_0002bd60(uVar10);
LAB_00032279:
      uVar7 = *puVar2;
      *puVar2 = *puVar2 + 1;
      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);
    }
LAB_00031fb8:
    piVar3 = (int *)(unaff_EBP + 0x57a42);
    pcVar5 = (char *)*piVar3;
    *piVar3 = (int)(pcVar5 + 1);
    if (*pcVar5 != ',') {
      *piVar3 = (int)pcVar5;
      FUN_0002e4e0();
      return;
    }
  } while( true );
}


PUSH EBP
CALL 0x0001fe10
ADD EBP,0x4e0ca
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
LEA EAX,[EBP + 0x973c]
LEA EDI,[ESP + 0x2c]
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [EBP + 0xffffffa8]
MOV dword ptr [ESP + 0x4],EAX
LEA EAX,[EBP + 0x9970]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBP + 0x9900]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00031fce
MOV ESI,dword ptr [ESP + 0x34]
TEST byte ptr [ESP + 0x3d],0x1
JZ 0x00031f84
CMP ESI,0x13
JLE 0x00032380
MOV ECX,dword ptr [ESP + 0x60]
MOV EDX,ESI
XOR EAX,EAX
MOV EBX,EBP
CALL 0x0002d560
SUB ESP,0xc
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
CALL 0x00024b20
MOV ECX,dword ptr [ESP + 0x70]
MOV EDX,ESI
CALL 0x0002d560
ADD ESP,0x10
CMP dword ptr [ESP + 0x8],EAX
JC 0x0003240f
LEA EAX,[EBP + 0x9978]
MOV EDX,dword ptr [EAX]
LEA ECX,[EDX + 0x1]
MOV dword ptr [EAX],ECX
CMP byte ptr [EDX],0x2c
JNZ 0x00032350
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x2
PUSH EDI
PUSH 0x0
CALL 0x000221d0
MOVZX ESI,byte ptr [ESP + 0x4c]
ADD ESP,0x10
CMP ESI,0x1
JBE 0x00032140
CMP ESI,0x6
JZ 0x00032210
CMP ESI,0x5
JZ 0x000322c0
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [EAX]
CMP ESI,0x2
JNZ 0x00032225
MOV EBX,dword ptr [ESP + 0x60]
TEST EBX,EBX
JZ 0x00032225
MOV EBX,dword ptr [ESP + 0x34]
MOV ESI,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x10],EBX
MOV EBX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x14],ESI
MOV ESI,dword ptr [ESP + 0x34]
MOV EAX,EBX
NOT EAX
SHR EAX,0x1f
MOV dword ptr [ESP + 0x8],EAX
MOVZX EAX,byte ptr [ESP + 0x3d]
SHR AL,0x1
MOV ECX,EAX
XOR ECX,0x1
AND ECX,0x1
CMP byte ptr [ESP + 0x8],CL
JZ 0x00032360
MOV EBX,dword ptr [ESP + 0x14]
LEA ESI,[EBP + 0x9900]
AND EAX,0x1
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [ESI + 0x4],EBX
MOV EBX,EAX
MOV dword ptr [ESI],ECX
XOR EBX,0x1
MOV dword ptr [ESP + 0x10],0x4
MOV dword ptr [ESP + 0x14],0x0
CMP byte ptr [ESP + 0x8],BL
JZ 0x000320a0
MOVZX EAX,AL
MOV dword ptr [ESP + 0x10],0x5
NEG EAX
MOV dword ptr [ESP + 0x14],0x0
MOV word ptr [ESI + 0x8],AX
MOV EAX,dword ptr [ESP + 0x4]
MOV ESI,dword ptr [ESP + 0x14]
MOV byte ptr [ESP + 0x3c],0x6
MOV EBX,dword ptr [ESP + 0x10]
ADD EAX,0x180
MOV dword ptr [ESP + 0x38],ESI
MOV ESI,0x6
MOV dword ptr [ESP + 0x34],EBX
CMP EDX,EAX
JZ 0x00032259
MOV EAX,dword ptr [EDX + 0x14]
AND EAX,0x103
CMP EAX,0x1
JZ 0x00032317
MOV dword ptr [ESP + 0x28],0xffffffff
SUB ESP,0x8
MOV EBX,EBP
LEA EAX,[ESP + 0x30]
PUSH EAX
PUSH EDI
CALL 0x0001fe30
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000323f2
CMP ESI,0x2
JZ 0x000321a5
CMP ESI,0x6
JZ 0x00031f70
SUB ESP,0xc
PUSH EDI
CALL 0x00021220
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESP + 0x80]
PUSH 0x0
PUSH 0xa
PUSH 0xb
CALL 0x00024b60
ADD ESP,0x30
JMP 0x00031fb8
SUB ESP,0x4
LEA EAX,[EBP + 0xfffdfc6c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bc80
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x48],0x0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x4]
MOV EBX,dword ptr [ESP]
ADD EAX,0x180
CMP dword ptr [EBX],EAX
JZ 0x00032279
MOV dword ptr [ESP + 0x28],0xffffffff
SUB ESP,0x8
MOV EBX,EBP
LEA EAX,[ESP + 0x30]
PUSH EAX
PUSH EDI
CALL 0x0001fe30
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000323f2
MOV EAX,dword ptr [ESP + 0x34]
MOV EDX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
TEST ECX,ECX
JZ 0x00032290
CALL 0x0002d520
MOV ESI,EAX
SUB ESP,0xc
MOV EBX,EBP
PUSH ESI
CALL 0x00024b20
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x00031e70
ADD ESP,0x20
CMP ESI,EAX
JNC 0x00031fb8
SUB ESP,0x4
LEA EAX,[EBP + 0xfffe0c14]
PUSH EAX
LEA EAX,[EBP + 0xfffe02a4]
PUSH 0x1459
PUSH EAX
CALL 0x0002be80
XOR EAX,EAX
CMP EAX,dword ptr [ESP + 0x34]
SBB EAX,dword ptr [ESP + 0x38]
JGE 0x000323a0
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x4]
ADD EAX,0x180
CMP EDX,EAX
JZ 0x00032250
CMP ESI,0x2
JNZ 0x000320cb
MOV ESI,dword ptr [ESP + 0x34]
MOV EBX,dword ptr [ESP + 0x38]
JMP 0x000322f9
CMP ESI,0x2
JZ 0x0003242a
SUB ESP,0x4
LEA EAX,[EBP + 0xfffdfd08]
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x18]
ADD dword ptr [EAX],0x1
ADC dword ptr [EAX + 0x4],0x0
JMP 0x00031fb8
MOV ECX,dword ptr [ESP + 0x8]
MOV EBX,dword ptr [ESP + 0xc]
XOR EAX,EAX
LEA ESI,[ESI]
SHRD ECX,EBX,0x7
SHR EBX,0x7
ADD EAX,0x1
MOV ESI,EBX
OR ESI,ECX
JNZ 0x000322a0
MOV ESI,EAX
JMP 0x000321c8
SUB ESP,0x4
LEA EAX,[EBP + 0xfffdfc90]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bc80
MOV EAX,dword ptr [ESP + 0x10]
ADD ESP,0x10
MOV ESI,dword ptr [ESP + 0x34]
MOV EBX,dword ptr [ESP + 0x38]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x4]
ADD EAX,0x180
CMP EDX,EAX
JZ 0x0003236d
OR EBX,ESI
JZ 0x00032182
MOV EAX,dword ptr [EDX + 0x14]
MOV ESI,0x2
AND EAX,0x103
CMP EAX,0x1
JNZ 0x000320dc
MOV EDX,dword ptr [EDX]
SUB ESP,0x4
LEA EAX,[EBP + 0xfffdfcb4]
MOV EBX,EBP
MOV dword ptr [ESP + 0xc],EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0x10]
PUSH EDX
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
JMP 0x000320dc
MOV dword ptr [EAX],EDX
CALL 0x0002e4e0
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x4]
ADD EAX,0x180
CMP EDX,EAX
JNZ 0x000322f9
OR EBX,ESI
JNZ 0x00032259
JMP 0x00032279
MOV EAX,dword ptr [ESP + 0x1c]
CMP word ptr [EAX + ESI*0x2 + -0x2],-0x1
JNZ 0x00031f84
XOR EDX,EDX
MOV word ptr [EAX + ESI*0x2],DX
ADD ESI,0x1
JMP 0x00031f84
SUB ESP,0x4
LEA EAX,[EBP + 0xfffddae4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x48],0x0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP]
ADD EAX,0x180
CMP dword ptr [ECX],EAX
JNZ 0x00032182
MOV EAX,dword ptr [ESP + 0x18]
ADD dword ptr [EAX],0x1
ADC dword ptr [EAX + 0x4],0x0
JMP 0x00031fb8
SUB ESP,0x4
LEA EAX,[EBP + 0xfffe0c14]
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfffe02a4]
PUSH 0x1447
PUSH EAX
CALL 0x0002be80
SUB ESP,0x4
LEA EAX,[EBP + 0xfffe0c14]
PUSH EAX
LEA EAX,[EBP + 0xfffe02a4]
PUSH 0x146d
PUSH EAX
CALL 0x0002be80
MOV ESI,dword ptr [ESP + 0x34]
MOV EBX,dword ptr [ESP + 0x38]
JMP 0x0003236d
(translation_unit "void FUN_00031f30(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  byte bVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte local_54;\n  uint local_4c;\n  undefined4 local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  uint local_24;\n  byte local_20;\n  byte local_1f;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(unaff_EBP + 0x57806);\n  iVar4 = *(int *)(unaff_EBP + 0x4e072);\n  puVar2 = (uint *)(unaff_EBP + 0x57a3a);\n  do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_00031f30(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  byte bVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte local_54;\n  uint local_4c;\n  undefined4 local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  uint local_24;\n  byte local_20;\n  byte local_1f;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(unaff_EBP + 0x57806);\n  iVar4 = *(int *)(unaff_EBP + 0x4e072);\n  puVar2 = (uint *)(unaff_EBP + 0x57a3a);\n  do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_00031f30(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  byte bVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte local_54;\n  uint local_4c;\n  undefined4 local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  uint local_24;\n  byte local_20;\n  byte local_1f;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(unaff_EBP + 0x57806);\n  iVar4 = *(int *)(unaff_EBP + 0x4e072);\n  puVar2 = (uint *)(unaff_EBP + 0x57a3a);\n  do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "byte local_54;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined1 local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "byte local_20;" type_identifier identifier ;) (declaration "byte local_1f;" type_identifier identifier ;) (expression_statement "FUN_0001fe10();" (call_expression "FUN_0001fe10()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar1 = (int *)(unaff_EBP + 0x57806);" (assignment_expression "piVar1 = (int *)(unaff_EBP + 0x57806)" identifier = (cast_expression "(int *)(unaff_EBP + 0x57806)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57806)" ( (binary_expression "unaff_EBP + 0x57806" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *(int *)(unaff_EBP + 0x4e072);" (assignment_expression "iVar4 = *(int *)(unaff_EBP + 0x4e072)" identifier = (pointer_expression "*(int *)(unaff_EBP + 0x4e072)" * (cast_expression "(int *)(unaff_EBP + 0x4e072)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4e072)" ( (binary_expression "unaff_EBP + 0x4e072" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = (uint *)(unaff_EBP + 0x57a3a);" (assignment_expression "puVar2 = (uint *)(unaff_EBP + 0x57a3a)" identifier = (cast_expression "(uint *)(unaff_EBP + 0x57a3a)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3a)" ( (binary_expression "unaff_EBP + 0x57a3a" identifier + number_literal) )))) ;) (do_statement "do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  }" { (expression_statement "FUN_000221d0(0,local_30,2);" (call_expression "FUN_000221d0(0,local_30,2)" identifier (argument_list "(0,local_30,2)" ( number_literal , identifier , number_literal ))) ;) (if_statement "if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" if (parenthesized_expression "(local_20 < 2)" ( (binary_expression "local_20 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }" { (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2dd36,5)" identifier (argument_list "(0,unaff_EBP + 0x2dd36,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2dd36" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bc80(uVar10);" (call_expression "FUN_0002bc80(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;" if (parenthesized_expression "(*piVar1 == iVar4 + 0x180)" ( (binary_expression "*piVar1 == iVar4 + 0x180" (pointer_expression "*piVar1" * identifier) == (binary_expression "iVar4 + 0x180" identifier + number_literal)) )) (goto_statement "goto LAB_00032279;" goto statement_identifier ;)) (labeled_statement "LAB_00032182:\n      local_34 = 0xffffffff;" statement_identifier : (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "iVar9 = FUN_0001fe30(local_30,&local_34);" (assignment_expression "iVar9 = FUN_0001fe30(local_30,&local_34)" identifier = (call_expression "FUN_0001fe30(local_30,&local_34)" identifier (argument_list "(local_30,&local_34)" ( identifier , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar9 != 0) goto LAB_000323f2;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000323f2;" goto statement_identifier ;)) (labeled_statement "LAB_000321a5:\n      uVar8 = local_24;" statement_identifier : (expression_statement "uVar8 = local_24;" (assignment_expression "uVar8 = local_24" identifier = identifier) ;)) (expression_statement "uVar7 = local_28;" (assignment_expression "uVar7 = local_28" identifier = identifier) ;) (if_statement "if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = local_28;" (assignment_expression "uVar13 = local_28" identifier = identifier) ;) (expression_statement "uVar15 = local_24;" (assignment_expression "uVar15 = local_24" identifier = identifier) ;) (do_statement "do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);" do (compound_statement "{\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        }" { (expression_statement "uVar13 = uVar13 >> 7 | uVar15 << 0x19;" (assignment_expression "uVar13 = uVar13 >> 7 | uVar15 << 0x19" identifier = (binary_expression "uVar13 >> 7 | uVar15 << 0x19" (binary_expression "uVar13 >> 7" identifier >> number_literal) | (binary_expression "uVar15 << 0x19" identifier << number_literal))) ;) (expression_statement "uVar15 = uVar15 >> 7;" (assignment_expression "uVar15 = uVar15 >> 7" identifier = (binary_expression "uVar15 >> 7" identifier >> number_literal)) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 != 0 || uVar13 != 0)" ( (binary_expression "uVar15 != 0 || uVar13 != 0" (binary_expression "uVar15 != 0" identifier != number_literal) || (binary_expression "uVar13 != 0" identifier != number_literal)) )) ;) }) (else_clause "else {\n        uVar11 = FUN_0002d520();\n      }" else (compound_statement "{\n        uVar11 = FUN_0002d520();\n      }" { (expression_statement "uVar11 = FUN_0002d520();" (assignment_expression "uVar11 = FUN_0002d520()" identifier = (call_expression "FUN_0002d520()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "uVar10 = FUN_00024b20(uVar11);" (assignment_expression "uVar10 = FUN_00024b20(uVar11)" identifier = (call_expression "FUN_00024b20(uVar11)" identifier (argument_list "(uVar11)" ( identifier )))) ;) (expression_statement "uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);" (assignment_expression "uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1)" identifier = (call_expression "FUN_00031e70(uVar10,uVar7,uVar8,param_1)" identifier (argument_list "(uVar10,uVar7,uVar8,param_1)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (uVar11 < uVar7) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }" if (parenthesized_expression "(uVar11 < uVar7)" ( (binary_expression "uVar11 < uVar7" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }" { comment (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde)" identifier (argument_list "(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde)" ( (binary_expression "unaff_EBP + 0x2e36e" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x2ecde" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" else (compound_statement "{\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" { (if_statement "if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" if (parenthesized_expression "(local_20 == 6)" ( (binary_expression "local_20 == 6" identifier == number_literal) )) (compound_statement "{\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }" { (if_statement "if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }" if (parenthesized_expression "((int)(uint)(local_28 != 0) <= (int)-local_24)" ( (binary_expression "(int)(uint)(local_28 != 0) <= (int)-local_24" (cast_expression "(int)(uint)(local_28 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(local_28 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) )))) <= (cast_expression "(int)-local_24" ( (type_descriptor "int" primitive_type) ) (unary_expression "-local_24" - identifier))) )) (compound_statement "{\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }" { (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2bbae,5)" identifier (argument_list "(0,unaff_EBP + 0x2bbae,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2bbae" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar10);" (call_expression "FUN_0002bd60(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;" if (parenthesized_expression "(*piVar1 != iVar4 + 0x180)" ( (binary_expression "*piVar1 != iVar4 + 0x180" (pointer_expression "*piVar1" * identifier) != (binary_expression "iVar4 + 0x180" identifier + number_literal)) )) (goto_statement "goto LAB_00032182;" goto statement_identifier ;)) (expression_statement "uVar7 = *puVar2;" (assignment_expression "uVar7 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*puVar2 = *puVar2 + 1;" (assignment_expression "*puVar2 = *puVar2 + 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 + 1" (pointer_expression "*puVar2" * identifier) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;" (assignment_expression "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" * (cast_expression "(int *)(unaff_EBP + 0x57a3e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3e)" ( (binary_expression "unaff_EBP + 0x57a3e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" * (cast_expression "(int *)(unaff_EBP + 0x57a3e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3e)" ( (binary_expression "unaff_EBP + 0x57a3e" identifier + number_literal) )))) + (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar7)" ( (binary_expression "0xfffffffe < uVar7" number_literal < identifier) ))))) ;) (goto_statement "goto LAB_00031fb8;" goto statement_identifier ;) })) (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" identifier = (cast_expression "(undefined4 *)*piVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (labeled_statement "LAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" statement_identifier : (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" if (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" ( (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x180)" ( (binary_expression "iVar4 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" { (if_statement "if (local_20 == 2) goto LAB_000322f9;" if (parenthesized_expression "(local_20 == 2)" ( (binary_expression "local_20 == 2" identifier == number_literal) )) (goto_statement "goto LAB_000322f9;" goto statement_identifier ;)) (labeled_statement "LAB_000320cb:\n          uVar7 = puVar14[5];" statement_identifier : (expression_statement "uVar7 = puVar14[5];" (assignment_expression "uVar7 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;)) (expression_statement "bVar6 = local_20;" (assignment_expression "bVar6 = local_20" identifier = identifier) ;) (goto_statement "goto joined_r0x00032311;" goto statement_identifier ;) }))) (if_statement "if (local_20 == 2) goto LAB_0003236d;" if (parenthesized_expression "(local_20 == 2)" ( (binary_expression "local_20 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0003236d;" goto statement_identifier ;)) }) (else_clause "else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" else (if_statement "if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" if (parenthesized_expression "(local_20 == 5)" ( (binary_expression "local_20 == 5" identifier == number_literal) )) (compound_statement "{\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }" { (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2dd5a,5)" identifier (argument_list "(0,unaff_EBP + 0x2dd5a,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2dd5a" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bc80(uVar10);" (call_expression "FUN_0002bc80(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" identifier = (cast_expression "(undefined4 *)*piVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }" if (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" ( (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x180)" ( (binary_expression "iVar4 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }" { (labeled_statement "LAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;" statement_identifier : (if_statement "if (local_24 == 0 && local_28 == 0) goto LAB_00032182;" if (parenthesized_expression "(local_24 == 0 && local_28 == 0)" ( (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" identifier == number_literal) && (binary_expression "local_28 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00032182;" goto statement_identifier ;))) (expression_statement "uVar7 = puVar14[5];" (assignment_expression "uVar7 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "bVar6 = 2;" (assignment_expression "bVar6 = 2" identifier = number_literal) ;) (labeled_statement "joined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" statement_identifier : (if_statement "if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" if (parenthesized_expression "((uVar7 & 0x103) == 1)" ( (binary_expression "(uVar7 & 0x103) == 1" (parenthesized_expression "(uVar7 & 0x103)" ( (binary_expression "uVar7 & 0x103" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" { (expression_statement "uVar10 = *puVar14;" (assignment_expression "uVar10 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);" (assignment_expression "uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2dd7e,5)" identifier (argument_list "(0,unaff_EBP + 0x2dd7e,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2dd7e" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,uVar10);" (call_expression "FUN_0002bd60(uVar12,uVar10)" identifier (argument_list "(uVar12,uVar10)" ( identifier , identifier ))) ;) }))) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar9 = FUN_0001fe30(local_30,&local_34);" (assignment_expression "iVar9 = FUN_0001fe30(local_30,&local_34)" identifier = (call_expression "FUN_0001fe30(local_30,&local_34)" identifier (argument_list "(local_30,&local_34)" ( identifier , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar9 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }" { (labeled_statement "LAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);" statement_identifier : comment (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde)" identifier (argument_list "(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde)" ( (binary_expression "unaff_EBP + 0x2e36e" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x2ecde" identifier + number_literal) ))) ;)) })) (if_statement "if (bVar6 == 2) goto LAB_000321a5;" if (parenthesized_expression "(bVar6 == 2)" ( (binary_expression "bVar6 == 2" identifier == number_literal) )) (goto_statement "goto LAB_000321a5;" goto statement_identifier ;)) (if_statement "if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" if (parenthesized_expression "(bVar6 == 6)" ( (binary_expression "bVar6 == 6" identifier == number_literal) )) (compound_statement "{\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }" { (if_statement "if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }" if (parenthesized_expression "((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1))" ( (binary_expression "(((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)" (parenthesized_expression "(((local_1f & 1) != 0) && ((int)local_28 < 0x14))" ( (binary_expression "((local_1f & 1) != 0) && ((int)local_28 < 0x14)" (parenthesized_expression "((local_1f & 1) != 0)" ( (binary_expression "(local_1f & 1) != 0" (parenthesized_expression "(local_1f & 1)" ( (binary_expression "local_1f & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((int)local_28 < 0x14)" ( (binary_expression "(int)local_28 < 0x14" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) && (parenthesized_expression "(*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)" ( (binary_expression "*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1" (pointer_expression "*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" * (cast_expression "(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" ( (binary_expression "&UNK_000579c8 + local_28 * 2 + unaff_EBP" (binary_expression "&UNK_000579c8 + local_28 * 2" (pointer_expression "&UNK_000579c8" & identifier) + (binary_expression "local_28 * 2" identifier * number_literal)) + identifier) )))) == number_literal) ))) )) (compound_statement "{\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }" { (expression_statement "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;" (assignment_expression "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0" (pointer_expression "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP)" * (cast_expression "(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000579ca + local_28 * 2 + unaff_EBP)" ( (binary_expression "&DAT_000579ca + local_28 * 2 + unaff_EBP" (binary_expression "&DAT_000579ca + local_28 * 2" (pointer_expression "&DAT_000579ca" & identifier) + (binary_expression "local_28 * 2" identifier * number_literal)) + identifier) )))) = number_literal) ;) })) (expression_statement "uVar7 = FUN_0002d560();" (assignment_expression "uVar7 = FUN_0002d560()" identifier = (call_expression "FUN_0002d560()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00024b20(uVar7);" (call_expression "FUN_00024b20(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "uVar8 = FUN_0002d560();" (assignment_expression "uVar8 = FUN_0002d560()" identifier = (call_expression "FUN_0002d560()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar7 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }" if (parenthesized_expression "(uVar7 < uVar8)" ( (binary_expression "uVar7 < uVar8" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }" { comment (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde)" identifier (argument_list "(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde)" ( (binary_expression "unaff_EBP + 0x2e36e" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x2ecde" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" else (compound_statement "{\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" { (expression_statement "uVar10 = FUN_00021220(local_30);" (assignment_expression "uVar10 = FUN_00021220(local_30)" identifier = (call_expression "FUN_00021220(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;) (expression_statement "FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);" (call_expression "FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0)" identifier (argument_list "(0xb,10,0,param_1,uVar10,0,0,0)" ( number_literal , number_literal , number_literal , identifier , identifier , number_literal , number_literal , number_literal ))) ;) }))) (goto_statement "goto LAB_00031fb8;" goto statement_identifier ;) })) (labeled_statement "LAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;" statement_identifier : (if_statement "if (local_24 == 0 && local_28 == 0) goto LAB_00032279;" if (parenthesized_expression "(local_24 == 0 && local_28 == 0)" ( (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" identifier == number_literal) && (binary_expression "local_28 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00032279;" goto statement_identifier ;))) }) (else_clause "else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" else (compound_statement "{\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" { (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" identifier = (cast_expression "(undefined4 *)*piVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (if_statement "if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;" if (parenthesized_expression "((local_20 != 2) || (param_1 == 0))" ( (binary_expression "(local_20 != 2) || (param_1 == 0)" (parenthesized_expression "(local_20 != 2)" ( (binary_expression "local_20 != 2" identifier != number_literal) )) || (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00032225;" goto statement_identifier ;)) (expression_statement "local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;" (assignment_expression "local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7" identifier = (binary_expression "(byte)~(byte)(local_24 >> 0x18) >> 7" (cast_expression "(byte)~(byte)(local_24 >> 0x18)" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~(byte)(local_24 >> 0x18)" ~ (call_expression "(byte)(local_24 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_24 >> 0x18)" ( (binary_expression "local_24 >> 0x18" identifier >> number_literal) ))))) >> number_literal)) ;) (if_statement "if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }" if (parenthesized_expression "(local_54 == ((local_1f >> 1 ^ 1) & 1))" ( (binary_expression "local_54 == ((local_1f >> 1 ^ 1) & 1)" identifier == (parenthesized_expression "((local_1f >> 1 ^ 1) & 1)" ( (binary_expression "(local_1f >> 1 ^ 1) & 1" (parenthesized_expression "(local_1f >> 1 ^ 1)" ( (binary_expression "local_1f >> 1 ^ 1" (binary_expression "local_1f >> 1" identifier >> number_literal) ^ number_literal) )) & number_literal) ))) )) (compound_statement "{\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }" { (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;" if (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" ( (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x180)" ( (binary_expression "iVar4 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_000322f9;" goto statement_identifier ;)) (goto_statement "goto LAB_0003236d;" goto statement_identifier ;) })) (expression_statement "bVar6 = local_1f >> 1 & 1;" (assignment_expression "bVar6 = local_1f >> 1 & 1" identifier = (binary_expression "local_1f >> 1 & 1" (binary_expression "local_1f >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "*(uint *)(&DAT_000579ce + unaff_EBP) = local_24;" (assignment_expression "*(uint *)(&DAT_000579ce + unaff_EBP) = local_24" (pointer_expression "*(uint *)(&DAT_000579ce + unaff_EBP)" * (cast_expression "(uint *)(&DAT_000579ce + unaff_EBP)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000579ce + unaff_EBP)" ( (binary_expression "&DAT_000579ce + unaff_EBP" (pointer_expression "&DAT_000579ce" & identifier) + identifier) )))) = identifier) ;) (expression_statement "*(uint *)(&DAT_000579ca + unaff_EBP) = local_28;" (assignment_expression "*(uint *)(&DAT_000579ca + unaff_EBP) = local_28" (pointer_expression "*(uint *)(&DAT_000579ca + unaff_EBP)" * (cast_expression "(uint *)(&DAT_000579ca + unaff_EBP)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000579ca + unaff_EBP)" ( (binary_expression "&DAT_000579ca + unaff_EBP" (pointer_expression "&DAT_000579ca" & identifier) + identifier) )))) = identifier) ;) (expression_statement "local_4c = 4;" (assignment_expression "local_4c = 4" identifier = number_literal) ;) (if_statement "if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }" if (parenthesized_expression "(local_54 != (bVar6 ^ 1))" ( (binary_expression "local_54 != (bVar6 ^ 1)" identifier != (parenthesized_expression "(bVar6 ^ 1)" ( (binary_expression "bVar6 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }" { (expression_statement "local_4c = 5;" (assignment_expression "local_4c = 5" identifier = number_literal) ;) (expression_statement "*(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;" (assignment_expression "*(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6" (pointer_expression "*(ushort *)(&DAT_000579d2 + unaff_EBP)" * (cast_expression "(ushort *)(&DAT_000579d2 + unaff_EBP)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000579d2 + unaff_EBP)" ( (binary_expression "&DAT_000579d2 + unaff_EBP" (pointer_expression "&DAT_000579d2" & identifier) + identifier) )))) = (unary_expression "-(ushort)bVar6" - (cast_expression "(ushort)bVar6" ( (type_descriptor "ushort" type_identifier) ) identifier))) ;) })) (expression_statement "local_20 = 6;" (assignment_expression "local_20 = 6" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_28 = local_4c;" (assignment_expression "local_28 = local_4c" identifier = identifier) ;) (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;" if (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" ( (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x180)" ( (binary_expression "iVar4 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_000320cb;" goto statement_identifier ;)) }))))) (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2ddd2,5)" identifier (argument_list "(0,unaff_EBP + 0x2ddd2,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2ddd2" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar10);" (call_expression "FUN_0002bd60(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (labeled_statement "LAB_00032279:\n      uVar7 = *puVar2;" statement_identifier : (expression_statement "uVar7 = *puVar2;" (assignment_expression "uVar7 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;)) (expression_statement "*puVar2 = *puVar2 + 1;" (assignment_expression "*puVar2 = *puVar2 + 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 + 1" (pointer_expression "*puVar2" * identifier) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);" (assignment_expression "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" * (cast_expression "(int *)(unaff_EBP + 0x57a3e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3e)" ( (binary_expression "unaff_EBP + 0x57a3e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" * (cast_expression "(int *)(unaff_EBP + 0x57a3e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3e)" ( (binary_expression "unaff_EBP + 0x57a3e" identifier + number_literal) )))) + (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar7)" ( (binary_expression "0xfffffffe < uVar7" number_literal < identifier) ))))) ;) }))) (labeled_statement "LAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);" statement_identifier : (expression_statement "piVar3 = (int *)(unaff_EBP + 0x57a42);" (assignment_expression "piVar3 = (int *)(unaff_EBP + 0x57a42)" identifier = (cast_expression "(int *)(unaff_EBP + 0x57a42)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a42)" ( (binary_expression "unaff_EBP + 0x57a42" identifier + number_literal) )))) ;)) (expression_statement "pcVar5 = (char *)*piVar3;" (assignment_expression "pcVar5 = (char *)*piVar3" identifier = (cast_expression "(char *)*piVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "*piVar3 = (int)(pcVar5 + 1);" (assignment_expression "*piVar3 = (int)(pcVar5 + 1)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(pcVar5 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar5 + 1)" ( (binary_expression "pcVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }" if (parenthesized_expression "(*pcVar5 != ',')" ( (binary_expression "*pcVar5 != ','" (pointer_expression "*pcVar5" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }" { (expression_statement "*piVar3 = (int)pcVar5;" (assignment_expression "*piVar3 = (int)pcVar5" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Unknown calling convention */\n\nvoid s_leb128(int sign)\n\n{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  char *pcVar4;\n  uint uVar5;\n  int iVar6;\n  symbolS *symbol;\n  uint nchars;\n  char *format;\n  LITTLENUM_TYPE *pLVar7;\n  segT paVar8;\n  LITTLENUM_TYPE *pLVar9;\n  bool bVar10;\n  segT *sign_00;\n  undefined *puVar11;\n  byte local_54;\n  LITTLENUM_TYPE *local_4c;\n  uint nbytes;\n  expressionS exp;\n  \n  sign_00 = &now_seg;\n  puVar11 = PTR__bfd_std_section_0007ffa8;\n  pcVar4 = input_line_pointer;\n  do {\n    input_line_pointer = pcVar4;\n    expr(0,&exp,expr_defer);\n    if ((byte)exp._16_1_ < 2) {\n      pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);\n      as_warn(pcVar4);\n      exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n      exp.X_add_number._4_4_ = 0;\n      if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;\nLAB_00032182:\n      nbytes = 0xffffffff;\n      iVar6 = check_eh_frame(&exp,&nbytes);\n      if (iVar6 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar5 = exp.X_add_number._4_4_;\n      pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n      if (sign == 0) {\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }\n      else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }\n      pcVar4 = frag_more(nchars);\n      uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);\n      if (nchars < uVar5) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }\n    }\n    else {\n      if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }\n      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);\n      as_bad(pcVar4);\nLAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;\n      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n    }\nLAB_00031fb8:\n    pcVar4 = input_line_pointer + 1;\n    if (*input_line_pointer != ',') {\n      demand_empty_rest_of_line();\n      return;\n    }\n  } while( true );\n}\n\n" comment comment comment (function_definition "void s_leb128(int sign)\n\n{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  char *pcVar4;\n  uint uVar5;\n  int iVar6;\n  symbolS *symbol;\n  uint nchars;\n  char *format;\n  LITTLENUM_TYPE *pLVar7;\n  segT paVar8;\n  LITTLENUM_TYPE *pLVar9;\n  bool bVar10;\n  segT *sign_00;\n  undefined *puVar11;\n  byte local_54;\n  LITTLENUM_TYPE *local_4c;\n  uint nbytes;\n  expressionS exp;\n  \n  sign_00 = &now_seg;\n  puVar11 = PTR__bfd_std_section_0007ffa8;\n  pcVar4 = input_line_pointer;\n  do {\n    input_line_pointer = pcVar4;\n    expr(0,&exp,expr_defer);\n    if ((byte)exp._16_1_ < 2) {\n      pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);\n      as_warn(pcVar4);\n      exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n      exp.X_add_number._4_4_ = 0;\n      if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;\nLAB_00032182:\n      nbytes = 0xffffffff;\n      iVar6 = check_eh_frame(&exp,&nbytes);\n      if (iVar6 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar5 = exp.X_add_number._4_4_;\n      pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n      if (sign == 0) {\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }\n      else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }\n      pcVar4 = frag_more(nchars);\n      uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);\n      if (nchars < uVar5) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }\n    }\n    else {\n      if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }\n      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);\n      as_bad(pcVar4);\nLAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;\n      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n    }\nLAB_00031fb8:\n    pcVar4 = input_line_pointer + 1;\n    if (*input_line_pointer != ',') {\n      demand_empty_rest_of_line();\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "s_leb128(int sign)" identifier (parameter_list "(int sign)" ( (parameter_declaration "int sign" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  char *pcVar4;\n  uint uVar5;\n  int iVar6;\n  symbolS *symbol;\n  uint nchars;\n  char *format;\n  LITTLENUM_TYPE *pLVar7;\n  segT paVar8;\n  LITTLENUM_TYPE *pLVar9;\n  bool bVar10;\n  segT *sign_00;\n  undefined *puVar11;\n  byte local_54;\n  LITTLENUM_TYPE *local_4c;\n  uint nbytes;\n  expressionS exp;\n  \n  sign_00 = &now_seg;\n  puVar11 = PTR__bfd_std_section_0007ffa8;\n  pcVar4 = input_line_pointer;\n  do {\n    input_line_pointer = pcVar4;\n    expr(0,&exp,expr_defer);\n    if ((byte)exp._16_1_ < 2) {\n      pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);\n      as_warn(pcVar4);\n      exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n      exp.X_add_number._4_4_ = 0;\n      if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;\nLAB_00032182:\n      nbytes = 0xffffffff;\n      iVar6 = check_eh_frame(&exp,&nbytes);\n      if (iVar6 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar5 = exp.X_add_number._4_4_;\n      pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n      if (sign == 0) {\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }\n      else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }\n      pcVar4 = frag_more(nchars);\n      uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);\n      if (nchars < uVar5) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }\n    }\n    else {\n      if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }\n      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);\n      as_bad(pcVar4);\nLAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;\n      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n    }\nLAB_00031fb8:\n    pcVar4 = input_line_pointer + 1;\n    if (*input_line_pointer != ',') {\n      demand_empty_rest_of_line();\n      return;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "symbolS *symbol;" type_identifier (pointer_declarator "*symbol" * identifier) ;) (declaration "uint nchars;" type_identifier identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "LITTLENUM_TYPE *pLVar7;" type_identifier (pointer_declarator "*pLVar7" * identifier) ;) (declaration "segT paVar8;" type_identifier identifier ;) (declaration "LITTLENUM_TYPE *pLVar9;" type_identifier (pointer_declarator "*pLVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "segT *sign_00;" type_identifier (pointer_declarator "*sign_00" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "byte local_54;" type_identifier identifier ;) (declaration "LITTLENUM_TYPE *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint nbytes;" type_identifier identifier ;) (declaration "expressionS exp;" type_identifier identifier ;) (expression_statement "sign_00 = &now_seg;" (assignment_expression "sign_00 = &now_seg" identifier = (pointer_expression "&now_seg" & identifier)) ;) (expression_statement "puVar11 = PTR__bfd_std_section_0007ffa8;" (assignment_expression "puVar11 = PTR__bfd_std_section_0007ffa8" identifier = identifier) ;) (expression_statement "pcVar4 = input_line_pointer;" (assignment_expression "pcVar4 = input_line_pointer" identifier = identifier) ;) (do_statement "do {\n    input_line_pointer = pcVar4;\n    expr(0,&exp,expr_defer);\n    if ((byte)exp._16_1_ < 2) {\n      pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);\n      as_warn(pcVar4);\n      exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n      exp.X_add_number._4_4_ = 0;\n      if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;\nLAB_00032182:\n      nbytes = 0xffffffff;\n      iVar6 = check_eh_frame(&exp,&nbytes);\n      if (iVar6 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar5 = exp.X_add_number._4_4_;\n      pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n      if (sign == 0) {\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }\n      else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }\n      pcVar4 = frag_more(nchars);\n      uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);\n      if (nchars < uVar5) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }\n    }\n    else {\n      if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }\n      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);\n      as_bad(pcVar4);\nLAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;\n      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n    }\nLAB_00031fb8:\n    pcVar4 = input_line_pointer + 1;\n    if (*input_line_pointer != ',') {\n      demand_empty_rest_of_line();\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    input_line_pointer = pcVar4;\n    expr(0,&exp,expr_defer);\n    if ((byte)exp._16_1_ < 2) {\n      pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);\n      as_warn(pcVar4);\n      exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n      exp.X_add_number._4_4_ = 0;\n      if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;\nLAB_00032182:\n      nbytes = 0xffffffff;\n      iVar6 = check_eh_frame(&exp,&nbytes);\n      if (iVar6 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar5 = exp.X_add_number._4_4_;\n      pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n      if (sign == 0) {\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }\n      else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }\n      pcVar4 = frag_more(nchars);\n      uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);\n      if (nchars < uVar5) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }\n    }\n    else {\n      if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }\n      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);\n      as_bad(pcVar4);\nLAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;\n      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n    }\nLAB_00031fb8:\n    pcVar4 = input_line_pointer + 1;\n    if (*input_line_pointer != ',') {\n      demand_empty_rest_of_line();\n      return;\n    }\n  }" { (expression_statement "input_line_pointer = pcVar4;" (assignment_expression "input_line_pointer = pcVar4" identifier = identifier) ;) (expression_statement "expr(0,&exp,expr_defer);" (call_expression "expr(0,&exp,expr_defer)" identifier (argument_list "(0,&exp,expr_defer)" ( number_literal , (pointer_expression "&exp" & identifier) , identifier ))) ;) (if_statement "if ((byte)exp._16_1_ < 2) {\n      pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);\n      as_warn(pcVar4);\n      exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n      exp.X_add_number._4_4_ = 0;\n      if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;\nLAB_00032182:\n      nbytes = 0xffffffff;\n      iVar6 = check_eh_frame(&exp,&nbytes);\n      if (iVar6 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar5 = exp.X_add_number._4_4_;\n      pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n      if (sign == 0) {\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }\n      else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }\n      pcVar4 = frag_more(nchars);\n      uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);\n      if (nchars < uVar5) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }\n    }\n    else {\n      if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }\n      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);\n      as_bad(pcVar4);\nLAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;\n      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n    }" if (parenthesized_expression "((byte)exp._16_1_ < 2)" ( (binary_expression "(byte)exp._16_1_ < 2" (cast_expression "(byte)exp._16_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "exp._16_1_" identifier . field_identifier)) < number_literal) )) (compound_statement "{\n      pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);\n      as_warn(pcVar4);\n      exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n      exp.X_add_number._4_4_ = 0;\n      if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;\nLAB_00032182:\n      nbytes = 0xffffffff;\n      iVar6 = check_eh_frame(&exp,&nbytes);\n      if (iVar6 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar5 = exp.X_add_number._4_4_;\n      pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n      if (sign == 0) {\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }\n      else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }\n      pcVar4 = frag_more(nchars);\n      uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);\n      if (nchars < uVar5) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }\n    }" { (expression_statement "pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"zero assumed for missing expression",5)" identifier = (cast_expression "(char *)dcgettext(0,"zero assumed for missing expression",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"zero assumed for missing expression",5)" identifier (argument_list "(0,"zero assumed for missing expression",5)" ( number_literal , (string_literal ""zero assumed for missing expression"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar4);" (call_expression "as_warn(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;" (assignment_expression "exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0" (field_expression "exp.X_add_number._0_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) = (cast_expression "(LITTLENUM_TYPE *)0x0" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "exp.X_add_number._4_4_ = 0;" (assignment_expression "exp.X_add_number._4_4_ = 0" (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (*sign_00 == (segT)(puVar11 + 0x180)) goto LAB_00032279;" if (parenthesized_expression "(*sign_00 == (segT)(puVar11 + 0x180))" ( (binary_expression "*sign_00 == (segT)(puVar11 + 0x180)" (pointer_expression "*sign_00" * identifier) == (call_expression "(segT)(puVar11 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0x180)" ( (binary_expression "puVar11 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_00032279;" goto statement_identifier ;)) (labeled_statement "LAB_00032182:\n      nbytes = 0xffffffff;" statement_identifier : (expression_statement "nbytes = 0xffffffff;" (assignment_expression "nbytes = 0xffffffff" identifier = number_literal) ;)) (expression_statement "iVar6 = check_eh_frame(&exp,&nbytes);" (assignment_expression "iVar6 = check_eh_frame(&exp,&nbytes)" identifier = (call_expression "check_eh_frame(&exp,&nbytes)" identifier (argument_list "(&exp,&nbytes)" ( (pointer_expression "&exp" & identifier) , (pointer_expression "&nbytes" & identifier) )))) ;) (if_statement "if (iVar6 != 0) goto LAB_000323f2;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000323f2;" goto statement_identifier ;)) (labeled_statement "LAB_000321a5:\n      uVar5 = exp.X_add_number._4_4_;" statement_identifier : (expression_statement "uVar5 = exp.X_add_number._4_4_;" (assignment_expression "uVar5 = exp.X_add_number._4_4_" identifier = (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier)) ;)) (expression_statement "pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;" (assignment_expression "pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number" identifier = (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ;) (if_statement "if (sign == 0) {\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }\n      else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }" if (parenthesized_expression "(sign == 0)" ( (binary_expression "sign == 0" identifier == number_literal) )) (compound_statement "{\n        nchars = 0;\n        pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;\n        uVar3 = exp.X_add_number._4_4_;\n        do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);\n      }" { (expression_statement "nchars = 0;" (assignment_expression "nchars = 0" identifier = number_literal) ;) (expression_statement "pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number;" (assignment_expression "pLVar7 = (LITTLENUM_TYPE *)exp.X_add_number" identifier = (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ;) (expression_statement "uVar3 = exp.X_add_number._4_4_;" (assignment_expression "uVar3 = exp.X_add_number._4_4_" identifier = (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier)) ;) (do_statement "do {\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        } while (uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0);" do (compound_statement "{\n          pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);\n          uVar3 = uVar3 >> 7;\n          nchars = nchars + 1;\n        }" { (expression_statement "pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19);" (assignment_expression "pLVar7 = (LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19)" identifier = (cast_expression "(LITTLENUM_TYPE *)((uint)pLVar7 >> 7 | uVar3 << 0x19)" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pLVar7 >> 7 | uVar3 << 0x19)" ( (binary_expression "(uint)pLVar7 >> 7 | uVar3 << 0x19" (binary_expression "(uint)pLVar7 >> 7" (cast_expression "(uint)pLVar7" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "uVar3 << 0x19" identifier << number_literal)) )))) ;) (expression_statement "uVar3 = uVar3 >> 7;" (assignment_expression "uVar3 = uVar3 >> 7" identifier = (binary_expression "uVar3 >> 7" identifier >> number_literal)) ;) (expression_statement "nchars = nchars + 1;" (assignment_expression "nchars = nchars + 1" identifier = (binary_expression "nchars + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0)" ( (binary_expression "uVar3 != 0 || pLVar7 != (LITTLENUM_TYPE *)0x0" (binary_expression "uVar3 != 0" identifier != number_literal) || (binary_expression "pLVar7 != (LITTLENUM_TYPE *)0x0" identifier != (cast_expression "(LITTLENUM_TYPE *)0x0" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) ;) }) (else_clause "else {\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }" else (compound_statement "{\n        nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);\n      }" { (expression_statement "nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number);" (assignment_expression "nchars = sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number)" identifier = (call_expression "sizeof_leb128(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number)" identifier (argument_list "(CONCAT44(puVar11,sign_00),(int)(LITTLENUM_TYPE *)exp.X_add_number)" ( (call_expression "CONCAT44(puVar11,sign_00)" identifier (argument_list "(puVar11,sign_00)" ( identifier , identifier ))) , (cast_expression "(int)(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "int" primitive_type) ) (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) )))) ;) }))) (expression_statement "pcVar4 = frag_more(nchars);" (assignment_expression "pcVar4 = frag_more(nchars)" identifier = (call_expression "frag_more(nchars)" identifier (argument_list "(nchars)" ( identifier )))) ;) (expression_statement "uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign);" (assignment_expression "uVar5 = output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign)" identifier = (call_expression "output_leb128(pcVar4,CONCAT44(uVar5,pLVar9),sign)" identifier (argument_list "(pcVar4,CONCAT44(uVar5,pLVar9),sign)" ( identifier , (call_expression "CONCAT44(uVar5,pLVar9)" identifier (argument_list "(uVar5,pLVar9)" ( identifier , identifier ))) , identifier )))) ;) (if_statement "if (nchars < uVar5) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }" if (parenthesized_expression "(nchars < uVar5)" ( (binary_expression "nchars < uVar5" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");\n      }" { comment (expression_statement "as_abort("../../gas/read.c",0x1459,"emit_leb128_expr");" (call_expression "as_abort("../../gas/read.c",0x1459,"emit_leb128_expr")" identifier (argument_list "("../../gas/read.c",0x1459,"emit_leb128_expr")" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""emit_leb128_expr"" " string_content ") ))) ;) })) }) (else_clause "else {\n      if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }\n      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);\n      as_bad(pcVar4);\nLAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;\n      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n    }" else (compound_statement "{\n      if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }\n      pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);\n      as_bad(pcVar4);\nLAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;\n      abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n    }" { (if_statement "if (exp._16_1_ == '\x06') {\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }\n      else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }" if (parenthesized_expression "(exp._16_1_ == '\x06')" ( (binary_expression "exp._16_1_ == '\x06'" (field_expression "exp._16_1_" identifier . field_identifier) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }\n        paVar8 = *sign_00;\nLAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }\n        if (exp._16_1_ == '\x02') goto LAB_0003236d;\n      }" { (if_statement "if ((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_) {\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }" if (parenthesized_expression "((int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_)" ( (binary_expression "(int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0) <=\n            (int)-exp.X_add_number._4_4_" (cast_expression "(int)(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0)" ( (binary_expression "(LITTLENUM_TYPE *)exp.X_add_number != (LITTLENUM_TYPE *)0x0" (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier)) != (cast_expression "(LITTLENUM_TYPE *)0x0" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) <= (cast_expression "(int)-exp.X_add_number._4_4_" ( (type_descriptor "int" primitive_type) ) (unary_expression "-exp.X_add_number._4_4_" - (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier)))) )) (compound_statement "{\n          pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);\n          as_bad(pcVar4);\n          exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;\n          exp.X_add_number._4_4_ = 0;\n          if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;\n          bVar10 = 0xfffffffe < (uint)abs_section_offset;\n          abs_section_offset._0_4_ = (uint)abs_section_offset + 1;\n          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;\n          goto LAB_00031fb8;\n        }" { (expression_statement "pcVar4 = (char *)dcgettext(0,"floating point number invalid",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"floating point number invalid",5)" identifier = (cast_expression "(char *)dcgettext(0,"floating point number invalid",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"floating point number invalid",5)" identifier (argument_list "(0,"floating point number invalid",5)" ( number_literal , (string_literal ""floating point number invalid"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar4);" (call_expression "as_bad(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0;" (assignment_expression "exp.X_add_number._0_4_ = (LITTLENUM_TYPE *)0x0" (field_expression "exp.X_add_number._0_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) = (cast_expression "(LITTLENUM_TYPE *)0x0" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "exp.X_add_number._4_4_ = 0;" (assignment_expression "exp.X_add_number._4_4_ = 0" (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (*sign_00 != (segT)(puVar11 + 0x180)) goto LAB_00032182;" if (parenthesized_expression "(*sign_00 != (segT)(puVar11 + 0x180))" ( (binary_expression "*sign_00 != (segT)(puVar11 + 0x180)" (pointer_expression "*sign_00" * identifier) != (call_expression "(segT)(puVar11 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0x180)" ( (binary_expression "puVar11 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_00032182;" goto statement_identifier ;)) (expression_statement "bVar10 = 0xfffffffe < (uint)abs_section_offset;" (assignment_expression "bVar10 = 0xfffffffe < (uint)abs_section_offset" identifier = (binary_expression "0xfffffffe < (uint)abs_section_offset" number_literal < (cast_expression "(uint)abs_section_offset" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "abs_section_offset._0_4_ = (uint)abs_section_offset + 1;" (assignment_expression "abs_section_offset._0_4_ = (uint)abs_section_offset + 1" (field_expression "abs_section_offset._0_4_" identifier . field_identifier) = (binary_expression "(uint)abs_section_offset + 1" (cast_expression "(uint)abs_section_offset" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;" (assignment_expression "abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10" (field_expression "abs_section_offset._4_4_" identifier . field_identifier) = (binary_expression "abs_section_offset._4_4_ + (uint)bVar10" (field_expression "abs_section_offset._4_4_" identifier . field_identifier) + (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_00031fb8;" goto statement_identifier ;) })) (expression_statement "paVar8 = *sign_00;" (assignment_expression "paVar8 = *sign_00" identifier = (pointer_expression "*sign_00" * identifier)) ;) (labeled_statement "LAB_00032225:\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }" statement_identifier : (if_statement "if (paVar8 != (segT)(puVar11 + 0x180)) {\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }" if (parenthesized_expression "(paVar8 != (segT)(puVar11 + 0x180))" ( (binary_expression "paVar8 != (segT)(puVar11 + 0x180)" identifier != (call_expression "(segT)(puVar11 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0x180)" ( (binary_expression "puVar11 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\n          if (exp._16_1_ == '\x02') goto LAB_000322f9;\nLAB_000320cb:\n          uVar5 = paVar8->flags;\n          cVar1 = exp._16_1_;\n          goto joined_r0x00032311;\n        }" { (if_statement "if (exp._16_1_ == '\x02') goto LAB_000322f9;" if (parenthesized_expression "(exp._16_1_ == '\x02')" ( (binary_expression "exp._16_1_ == '\x02'" (field_expression "exp._16_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_000322f9;" goto statement_identifier ;)) (labeled_statement "LAB_000320cb:\n          uVar5 = paVar8->flags;" statement_identifier : (expression_statement "uVar5 = paVar8->flags;" (assignment_expression "uVar5 = paVar8->flags" identifier = (field_expression "paVar8->flags" identifier -> field_identifier)) ;)) (expression_statement "cVar1 = exp._16_1_;" (assignment_expression "cVar1 = exp._16_1_" identifier = (field_expression "exp._16_1_" identifier . field_identifier)) ;) (goto_statement "goto joined_r0x00032311;" goto statement_identifier ;) }))) (if_statement "if (exp._16_1_ == '\x02') goto LAB_0003236d;" if (parenthesized_expression "(exp._16_1_ == '\x02')" ( (binary_expression "exp._16_1_ == '\x02'" (field_expression "exp._16_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003236d;" goto statement_identifier ;)) }) (else_clause "else if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }" else (if_statement "if (exp._16_1_ == '\x05') {\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }\n      else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }" if (parenthesized_expression "(exp._16_1_ == '\x05')" ( (binary_expression "exp._16_1_ == '\x05'" (field_expression "exp._16_1_" identifier . field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar4 = (char *)dcgettext(0,"register value used as expression",5);\n        as_warn(pcVar4);\n        paVar8 = *sign_00;\n        if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;\n      }" { (expression_statement "pcVar4 = (char *)dcgettext(0,"register value used as expression",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"register value used as expression",5)" identifier = (cast_expression "(char *)dcgettext(0,"register value used as expression",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"register value used as expression",5)" identifier (argument_list "(0,"register value used as expression",5)" ( number_literal , (string_literal ""register value used as expression"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar4);" (call_expression "as_warn(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "paVar8 = *sign_00;" (assignment_expression "paVar8 = *sign_00" identifier = (pointer_expression "*sign_00" * identifier)) ;) (if_statement "if (paVar8 != (segT)(puVar11 + 0x180)) {\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }" if (parenthesized_expression "(paVar8 != (segT)(puVar11 + 0x180))" ( (binary_expression "paVar8 != (segT)(puVar11 + 0x180)" identifier != (call_expression "(segT)(puVar11 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0x180)" ( (binary_expression "puVar11 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\nLAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;\n          uVar5 = paVar8->flags;\n          cVar1 = '\x02';\njoined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }\n          nbytes = 0xffffffff;\n          iVar6 = check_eh_frame(&exp,&nbytes);\n          if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }\n          if (cVar1 == '\x02') goto LAB_000321a5;\n          if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }\n          goto LAB_00031fb8;\n        }" { (labeled_statement "LAB_000322f9:\n          if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;" statement_identifier : (if_statement "if (exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032182;" if (parenthesized_expression "(exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0)" ( (binary_expression "exp.X_add_number._4_4_ == 0 &&\n              (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0" (binary_expression "exp.X_add_number._4_4_ == 0" (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) == number_literal) && (binary_expression "(LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0" (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier)) == (cast_expression "(LITTLENUM_TYPE *)0x0" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (goto_statement "goto LAB_00032182;" goto statement_identifier ;))) (expression_statement "uVar5 = paVar8->flags;" (assignment_expression "uVar5 = paVar8->flags" identifier = (field_expression "paVar8->flags" identifier -> field_identifier)) ;) (expression_statement "cVar1 = '\x02';" (assignment_expression "cVar1 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (labeled_statement "joined_r0x00032311:\n          if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }" statement_identifier : (if_statement "if ((uVar5 & 0x103) == 1) {\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }" if (parenthesized_expression "((uVar5 & 0x103) == 1)" ( (binary_expression "(uVar5 & 0x103) == 1" (parenthesized_expression "(uVar5 & 0x103)" ( (binary_expression "uVar5 & 0x103" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pcVar4 = paVar8->name;\n            format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);\n            as_bad(format,pcVar4);\n          }" { (expression_statement "pcVar4 = paVar8->name;" (assignment_expression "pcVar4 = paVar8->name" identifier = (field_expression "paVar8->name" identifier -> field_identifier)) ;) (expression_statement "format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5);" (assignment_expression "format = (char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"attempt to store non-zero value in section `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"attempt to store non-zero value in section `%s\'",5)" identifier (argument_list "(0,"attempt to store non-zero value in section `%s\'",5)" ( number_literal , (string_literal ""attempt to store non-zero value in section `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(format,pcVar4);" (call_expression "as_bad(format,pcVar4)" identifier (argument_list "(format,pcVar4)" ( identifier , identifier ))) ;) }))) (expression_statement "nbytes = 0xffffffff;" (assignment_expression "nbytes = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar6 = check_eh_frame(&exp,&nbytes);" (assignment_expression "iVar6 = check_eh_frame(&exp,&nbytes)" identifier = (call_expression "check_eh_frame(&exp,&nbytes)" identifier (argument_list "(&exp,&nbytes)" ( (pointer_expression "&exp" & identifier) , (pointer_expression "&nbytes" & identifier) )))) ;) (if_statement "if (iVar6 != 0) {\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");\n          }" { (labeled_statement "LAB_000323f2:\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");" statement_identifier : comment (expression_statement "as_abort("../../gas/read.c",0x1447,"emit_leb128_expr");" (call_expression "as_abort("../../gas/read.c",0x1447,"emit_leb128_expr")" identifier (argument_list "("../../gas/read.c",0x1447,"emit_leb128_expr")" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""emit_leb128_expr"" " string_content ") ))) ;)) })) (if_statement "if (cVar1 == '\x02') goto LAB_000321a5;" if (parenthesized_expression "(cVar1 == '\x02')" ( (binary_expression "cVar1 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_000321a5;" goto statement_identifier ;)) (if_statement "if (cVar1 == '\x06') {\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }\n          else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }" if (parenthesized_expression "(cVar1 == '\x06')" ( (binary_expression "cVar1 == '\x06'" identifier == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n            pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;\n            if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }\n            uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);\n            uVar5 = uVar3;\n            pcVar4 = frag_more(uVar3);\n            uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);\n            if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }\n          }" { (expression_statement "pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number;" (assignment_expression "pLVar9 = (LITTLENUM_TYPE *)exp.X_add_number" identifier = (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ;) (if_statement "if ((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)) {\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }" if (parenthesized_expression "((((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1))" ( (binary_expression "(((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)) &&\n               (*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)" (parenthesized_expression "(((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14))" ( (binary_expression "((exp._17_1_ & 1) != 0) && ((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)" (parenthesized_expression "((exp._17_1_ & 1) != 0)" ( (binary_expression "(exp._17_1_ & 1) != 0" (parenthesized_expression "(exp._17_1_ & 1)" ( (binary_expression "exp._17_1_ & 1" (field_expression "exp._17_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14)" ( (binary_expression "(int)(LITTLENUM_TYPE *)exp.X_add_number < 0x14" (cast_expression "(int)(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "int" primitive_type) ) (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) < number_literal) ))) )) && (parenthesized_expression "(*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1)" ( (binary_expression "*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2) == -1" (pointer_expression "*(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2)" * (cast_expression "(short *)(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2)" ( (binary_expression "&DAT_000898fe + (int)(LITTLENUM_TYPE *)exp.X_add_number * 2" (pointer_expression "&DAT_000898fe" & identifier) + (binary_expression "(int)(LITTLENUM_TYPE *)exp.X_add_number * 2" (cast_expression "(int)(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "int" primitive_type) ) (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) * number_literal)) )))) == number_literal) ))) )) (compound_statement "{\n              (&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;\n              pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);\n            }" { (expression_statement "(&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0;" (assignment_expression "(&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number] = 0" (subscript_expression "(&generic_bignum)[(int)(LITTLENUM_TYPE *)exp.X_add_number]" (parenthesized_expression "(&generic_bignum)" ( (pointer_expression "&generic_bignum" & identifier) )) [ (cast_expression "(int)(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "int" primitive_type) ) (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ]) = number_literal) ;) (expression_statement "pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1);" (assignment_expression "pLVar9 = (LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1)" identifier = (cast_expression "(LITTLENUM_TYPE *)((int)(LITTLENUM_TYPE *)exp.X_add_number + 1)" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(LITTLENUM_TYPE *)exp.X_add_number + 1)" ( (binary_expression "(int)(LITTLENUM_TYPE *)exp.X_add_number + 1" (cast_expression "(int)(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "int" primitive_type) ) (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) + number_literal) )))) ;) })) (expression_statement "uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00);" (assignment_expression "uVar3 = output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00)" identifier = (call_expression "output_big_leb128((char *)0x0,pLVar9,sign,(int)sign_00)" identifier (argument_list "((char *)0x0,pLVar9,sign,(int)sign_00)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , (cast_expression "(int)sign_00" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "uVar5 = uVar3;" (assignment_expression "uVar5 = uVar3" identifier = identifier) ;) (expression_statement "pcVar4 = frag_more(uVar3);" (assignment_expression "pcVar4 = frag_more(uVar3)" identifier = (call_expression "frag_more(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5);" (assignment_expression "uVar5 = output_big_leb128(pcVar4,pLVar9,sign,uVar5)" identifier = (call_expression "output_big_leb128(pcVar4,pLVar9,sign,uVar5)" identifier (argument_list "(pcVar4,pLVar9,sign,uVar5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (uVar3 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }" if (parenthesized_expression "(uVar3 < uVar5)" ( (binary_expression "uVar3 < uVar5" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");\n            }" { comment (expression_statement "as_abort("../../gas/read.c",0x146d,"emit_leb128_expr");" (call_expression "as_abort("../../gas/read.c",0x146d,"emit_leb128_expr")" identifier (argument_list "("../../gas/read.c",0x146d,"emit_leb128_expr")" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""emit_leb128_expr"" " string_content ") ))) ;) })) }) (else_clause "else {\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }" else (compound_statement "{\n            symbol = make_expr_symbol(&exp);\n            frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);\n          }" { (expression_statement "symbol = make_expr_symbol(&exp);" (assignment_expression "symbol = make_expr_symbol(&exp)" identifier = (call_expression "make_expr_symbol(&exp)" identifier (argument_list "(&exp)" ( (pointer_expression "&exp" & identifier) )))) ;) (expression_statement "frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0);" (call_expression "frag_var(rs_leb128,10,0,sign,symbol,0,(char *)0x0)" identifier (argument_list "(rs_leb128,10,0,sign,symbol,0,(char *)0x0)" ( identifier , number_literal , number_literal , identifier , identifier , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) }))) (goto_statement "goto LAB_00031fb8;" goto statement_identifier ;) })) (labeled_statement "LAB_0003236d:\n        if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;" statement_identifier : (if_statement "if (exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0) goto LAB_00032279;" if (parenthesized_expression "(exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0)" ( (binary_expression "exp.X_add_number._4_4_ == 0 &&\n            (LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0" (binary_expression "exp.X_add_number._4_4_ == 0" (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) == number_literal) && (binary_expression "(LITTLENUM_TYPE *)exp.X_add_number == (LITTLENUM_TYPE *)0x0" (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier)) == (cast_expression "(LITTLENUM_TYPE *)0x0" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (goto_statement "goto LAB_00032279;" goto statement_identifier ;))) }) (else_clause "else {\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }" else (compound_statement "{\n        paVar8 = *sign_00;\n        if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;\n        if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar2 = (byte)exp._17_1_ >> 1 & 1;\n        DAT_00089904 = exp.X_add_number._4_4_;\n        _generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;\n        local_4c = (LITTLENUM_TYPE *)0x4;\n        if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }\n        exp._16_1_ = 6;\n        exp.X_add_number._4_4_ = 0;\n        exp.X_add_number._0_4_ = local_4c;\n        if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;\n      }" { (expression_statement "paVar8 = *sign_00;" (assignment_expression "paVar8 = *sign_00" identifier = (pointer_expression "*sign_00" * identifier)) ;) (if_statement "if ((exp._16_1_ != '\x02') || (sign == 0)) goto LAB_00032225;" if (parenthesized_expression "((exp._16_1_ != '\x02') || (sign == 0))" ( (binary_expression "(exp._16_1_ != '\x02') || (sign == 0)" (parenthesized_expression "(exp._16_1_ != '\x02')" ( (binary_expression "exp._16_1_ != '\x02'" (field_expression "exp._16_1_" identifier . field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) )) || (parenthesized_expression "(sign == 0)" ( (binary_expression "sign == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00032225;" goto statement_identifier ;)) (expression_statement "local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7;" (assignment_expression "local_54 = (byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7" identifier = (binary_expression "(byte)~(byte)(exp.X_add_number._4_4_ >> 0x18) >> 7" (cast_expression "(byte)~(byte)(exp.X_add_number._4_4_ >> 0x18)" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~(byte)(exp.X_add_number._4_4_ >> 0x18)" ~ (call_expression "(byte)(exp.X_add_number._4_4_ >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(exp.X_add_number._4_4_ >> 0x18)" ( (binary_expression "exp.X_add_number._4_4_ >> 0x18" (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) >> number_literal) ))))) >> number_literal)) ;) (if_statement "if (local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)) {\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }" if (parenthesized_expression "(local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1))" ( (binary_expression "local_54 == (((byte)exp._17_1_ >> 1 ^ 1) & 1)" identifier == (parenthesized_expression "(((byte)exp._17_1_ >> 1 ^ 1) & 1)" ( (binary_expression "((byte)exp._17_1_ >> 1 ^ 1) & 1" (parenthesized_expression "((byte)exp._17_1_ >> 1 ^ 1)" ( (binary_expression "(byte)exp._17_1_ >> 1 ^ 1" (binary_expression "(byte)exp._17_1_ >> 1" (cast_expression "(byte)exp._17_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "exp._17_1_" identifier . field_identifier)) >> number_literal) ^ number_literal) )) & number_literal) ))) )) (compound_statement "{\n          if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }" { (if_statement "if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000322f9;" if (parenthesized_expression "(paVar8 != (segT)(puVar11 + 0x180))" ( (binary_expression "paVar8 != (segT)(puVar11 + 0x180)" identifier != (call_expression "(segT)(puVar11 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0x180)" ( (binary_expression "puVar11 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_000322f9;" goto statement_identifier ;)) (goto_statement "goto LAB_0003236d;" goto statement_identifier ;) })) (expression_statement "bVar2 = (byte)exp._17_1_ >> 1 & 1;" (assignment_expression "bVar2 = (byte)exp._17_1_ >> 1 & 1" identifier = (binary_expression "(byte)exp._17_1_ >> 1 & 1" (binary_expression "(byte)exp._17_1_ >> 1" (cast_expression "(byte)exp._17_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "exp._17_1_" identifier . field_identifier)) >> number_literal) & number_literal)) ;) (expression_statement "DAT_00089904 = exp.X_add_number._4_4_;" (assignment_expression "DAT_00089904 = exp.X_add_number._4_4_" identifier = (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier)) ;) (expression_statement "_generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number;" (assignment_expression "_generic_bignum = (LITTLENUM_TYPE *)exp.X_add_number" identifier = (cast_expression "(LITTLENUM_TYPE *)exp.X_add_number" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ;) (expression_statement "local_4c = (LITTLENUM_TYPE *)0x4;" (assignment_expression "local_4c = (LITTLENUM_TYPE *)0x4" identifier = (cast_expression "(LITTLENUM_TYPE *)0x4" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_54 != (bVar2 ^ 1)) {\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }" if (parenthesized_expression "(local_54 != (bVar2 ^ 1))" ( (binary_expression "local_54 != (bVar2 ^ 1)" identifier != (parenthesized_expression "(bVar2 ^ 1)" ( (binary_expression "bVar2 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n          local_4c = (LITTLENUM_TYPE *)0x5;\n          DAT_00089908 = -(ushort)bVar2;\n        }" { (expression_statement "local_4c = (LITTLENUM_TYPE *)0x5;" (assignment_expression "local_4c = (LITTLENUM_TYPE *)0x5" identifier = (cast_expression "(LITTLENUM_TYPE *)0x5" ( (type_descriptor "LITTLENUM_TYPE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00089908 = -(ushort)bVar2;" (assignment_expression "DAT_00089908 = -(ushort)bVar2" identifier = (unary_expression "-(ushort)bVar2" - (cast_expression "(ushort)bVar2" ( (type_descriptor "ushort" type_identifier) ) identifier))) ;) })) (expression_statement "exp._16_1_ = 6;" (assignment_expression "exp._16_1_ = 6" (field_expression "exp._16_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "exp.X_add_number._4_4_ = 0;" (assignment_expression "exp.X_add_number._4_4_ = 0" (field_expression "exp.X_add_number._4_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "exp.X_add_number._0_4_ = local_4c;" (assignment_expression "exp.X_add_number._0_4_ = local_4c" (field_expression "exp.X_add_number._0_4_" (field_expression "exp.X_add_number" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (paVar8 != (segT)(puVar11 + 0x180)) goto LAB_000320cb;" if (parenthesized_expression "(paVar8 != (segT)(puVar11 + 0x180))" ( (binary_expression "paVar8 != (segT)(puVar11 + 0x180)" identifier != (call_expression "(segT)(puVar11 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar11 + 0x180)" ( (binary_expression "puVar11 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_000320cb;" goto statement_identifier ;)) }))))) (expression_statement "pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"attempt to store value in absolute section",5)" identifier = (cast_expression "(char *)dcgettext(0,"attempt to store value in absolute section",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"attempt to store value in absolute section",5)" identifier (argument_list "(0,"attempt to store value in absolute section",5)" ( number_literal , (string_literal ""attempt to store value in absolute section"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar4);" (call_expression "as_bad(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (labeled_statement "LAB_00032279:\n      bVar10 = 0xfffffffe < (uint)abs_section_offset;" statement_identifier : (expression_statement "bVar10 = 0xfffffffe < (uint)abs_section_offset;" (assignment_expression "bVar10 = 0xfffffffe < (uint)abs_section_offset" identifier = (binary_expression "0xfffffffe < (uint)abs_section_offset" number_literal < (cast_expression "(uint)abs_section_offset" ( (type_descriptor "uint" type_identifier) ) identifier))) ;)) (expression_statement "abs_section_offset._0_4_ = (uint)abs_section_offset + 1;" (assignment_expression "abs_section_offset._0_4_ = (uint)abs_section_offset + 1" (field_expression "abs_section_offset._0_4_" identifier . field_identifier) = (binary_expression "(uint)abs_section_offset + 1" (cast_expression "(uint)abs_section_offset" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10;" (assignment_expression "abs_section_offset._4_4_ = abs_section_offset._4_4_ + (uint)bVar10" (field_expression "abs_section_offset._4_4_" identifier . field_identifier) = (binary_expression "abs_section_offset._4_4_ + (uint)bVar10" (field_expression "abs_section_offset._4_4_" identifier . field_identifier) + (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }))) (labeled_statement "LAB_00031fb8:\n    pcVar4 = input_line_pointer + 1;" statement_identifier : (expression_statement "pcVar4 = input_line_pointer + 1;" (assignment_expression "pcVar4 = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;)) (if_statement "if (*input_line_pointer != ',') {\n      demand_empty_rest_of_line();\n      return;\n    }" if (parenthesized_expression "(*input_line_pointer != ',')" ( (binary_expression "*input_line_pointer != ','" (pointer_expression "*input_line_pointer" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n      demand_empty_rest_of_line();\n      return;\n    }" { (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_00031f30(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  byte bVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte local_54;\n  uint local_4c;\n  undefined4 local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  uint local_24;\n  byte local_20;\n  byte local_1f;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(unaff_EBP + 0x57806);\n  iVar4 = *(int *)(unaff_EBP + 0x4e072);\n  puVar2 = (uint *)(unaff_EBP + 0x57a3a);\n  do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_00031f30(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  byte bVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte local_54;\n  uint local_4c;\n  undefined4 local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  uint local_24;\n  byte local_20;\n  byte local_1f;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(unaff_EBP + 0x57806);\n  iVar4 = *(int *)(unaff_EBP + 0x4e072);\n  puVar2 = (uint *)(unaff_EBP + 0x57a3a);\n  do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_00031f30(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  byte bVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte local_54;\n  uint local_4c;\n  undefined4 local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  uint local_24;\n  byte local_20;\n  byte local_1f;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(unaff_EBP + 0x57806);\n  iVar4 = *(int *)(unaff_EBP + 0x4e072);\n  puVar2 = (uint *)(unaff_EBP + 0x57a3a);\n  do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "byte local_54;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined1 local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "byte local_20;" type_identifier identifier ;) (declaration "byte local_1f;" type_identifier identifier ;) (expression_statement "FUN_0001fe10();" (call_expression "FUN_0001fe10()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar1 = (int *)(unaff_EBP + 0x57806);" (assignment_expression "piVar1 = (int *)(unaff_EBP + 0x57806)" identifier = (cast_expression "(int *)(unaff_EBP + 0x57806)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57806)" ( (binary_expression "unaff_EBP + 0x57806" identifier + number_literal) )))) ;) (expression_statement "iVar4 = *(int *)(unaff_EBP + 0x4e072);" (assignment_expression "iVar4 = *(int *)(unaff_EBP + 0x4e072)" identifier = (pointer_expression "*(int *)(unaff_EBP + 0x4e072)" * (cast_expression "(int *)(unaff_EBP + 0x4e072)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4e072)" ( (binary_expression "unaff_EBP + 0x4e072" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = (uint *)(unaff_EBP + 0x57a3a);" (assignment_expression "puVar2 = (uint *)(unaff_EBP + 0x57a3a)" identifier = (cast_expression "(uint *)(unaff_EBP + 0x57a3a)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3a)" ( (binary_expression "unaff_EBP + 0x57a3a" identifier + number_literal) )))) ;) (do_statement "do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  }" { (expression_statement "FUN_000221d0(0,local_30,2);" (call_expression "FUN_000221d0(0,local_30,2)" identifier (argument_list "(0,local_30,2)" ( number_literal , identifier , number_literal ))) ;) (if_statement "if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" if (parenthesized_expression "(local_20 < 2)" ( (binary_expression "local_20 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }" { (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2dd36,5)" identifier (argument_list "(0,unaff_EBP + 0x2dd36,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2dd36" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bc80(uVar10);" (call_expression "FUN_0002bc80(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;" if (parenthesized_expression "(*piVar1 == iVar4 + 0x180)" ( (binary_expression "*piVar1 == iVar4 + 0x180" (pointer_expression "*piVar1" * identifier) == (binary_expression "iVar4 + 0x180" identifier + number_literal)) )) (goto_statement "goto LAB_00032279;" goto statement_identifier ;)) (labeled_statement "LAB_00032182:\n      local_34 = 0xffffffff;" statement_identifier : (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "iVar9 = FUN_0001fe30(local_30,&local_34);" (assignment_expression "iVar9 = FUN_0001fe30(local_30,&local_34)" identifier = (call_expression "FUN_0001fe30(local_30,&local_34)" identifier (argument_list "(local_30,&local_34)" ( identifier , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar9 != 0) goto LAB_000323f2;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000323f2;" goto statement_identifier ;)) (labeled_statement "LAB_000321a5:\n      uVar8 = local_24;" statement_identifier : (expression_statement "uVar8 = local_24;" (assignment_expression "uVar8 = local_24" identifier = identifier) ;)) (expression_statement "uVar7 = local_28;" (assignment_expression "uVar7 = local_28" identifier = identifier) ;) (if_statement "if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = local_28;" (assignment_expression "uVar13 = local_28" identifier = identifier) ;) (expression_statement "uVar15 = local_24;" (assignment_expression "uVar15 = local_24" identifier = identifier) ;) (do_statement "do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);" do (compound_statement "{\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        }" { (expression_statement "uVar13 = uVar13 >> 7 | uVar15 << 0x19;" (assignment_expression "uVar13 = uVar13 >> 7 | uVar15 << 0x19" identifier = (binary_expression "uVar13 >> 7 | uVar15 << 0x19" (binary_expression "uVar13 >> 7" identifier >> number_literal) | (binary_expression "uVar15 << 0x19" identifier << number_literal))) ;) (expression_statement "uVar15 = uVar15 >> 7;" (assignment_expression "uVar15 = uVar15 >> 7" identifier = (binary_expression "uVar15 >> 7" identifier >> number_literal)) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 != 0 || uVar13 != 0)" ( (binary_expression "uVar15 != 0 || uVar13 != 0" (binary_expression "uVar15 != 0" identifier != number_literal) || (binary_expression "uVar13 != 0" identifier != number_literal)) )) ;) }) (else_clause "else {\n        uVar11 = FUN_0002d520();\n      }" else (compound_statement "{\n        uVar11 = FUN_0002d520();\n      }" { (expression_statement "uVar11 = FUN_0002d520();" (assignment_expression "uVar11 = FUN_0002d520()" identifier = (call_expression "FUN_0002d520()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "uVar10 = FUN_00024b20(uVar11);" (assignment_expression "uVar10 = FUN_00024b20(uVar11)" identifier = (call_expression "FUN_00024b20(uVar11)" identifier (argument_list "(uVar11)" ( identifier )))) ;) (expression_statement "uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);" (assignment_expression "uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1)" identifier = (call_expression "FUN_00031e70(uVar10,uVar7,uVar8,param_1)" identifier (argument_list "(uVar10,uVar7,uVar8,param_1)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }" if (parenthesized_expression "(uVar11 < uVar7)" ( (binary_expression "uVar11 < uVar7" identifier < identifier) )) (compound_statement "{\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }" { (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde)" identifier (argument_list "(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde)" ( (binary_expression "unaff_EBP + 0x2e36e" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x2ecde" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" else (compound_statement "{\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" { (if_statement "if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" if (parenthesized_expression "(local_20 == 6)" ( (binary_expression "local_20 == 6" identifier == number_literal) )) (compound_statement "{\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }" { (if_statement "if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }" if (parenthesized_expression "((int)(uint)(local_28 != 0) <= (int)-local_24)" ( (binary_expression "(int)(uint)(local_28 != 0) <= (int)-local_24" (cast_expression "(int)(uint)(local_28 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(local_28 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) )))) <= (cast_expression "(int)-local_24" ( (type_descriptor "int" primitive_type) ) (unary_expression "-local_24" - identifier))) )) (compound_statement "{\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }" { (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2bbae,5)" identifier (argument_list "(0,unaff_EBP + 0x2bbae,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2bbae" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar10);" (call_expression "FUN_0002bd60(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;" if (parenthesized_expression "(*piVar1 != iVar4 + 0x180)" ( (binary_expression "*piVar1 != iVar4 + 0x180" (pointer_expression "*piVar1" * identifier) != (binary_expression "iVar4 + 0x180" identifier + number_literal)) )) (goto_statement "goto LAB_00032182;" goto statement_identifier ;)) (expression_statement "uVar7 = *puVar2;" (assignment_expression "uVar7 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*puVar2 = *puVar2 + 1;" (assignment_expression "*puVar2 = *puVar2 + 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 + 1" (pointer_expression "*puVar2" * identifier) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;" (assignment_expression "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" * (cast_expression "(int *)(unaff_EBP + 0x57a3e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3e)" ( (binary_expression "unaff_EBP + 0x57a3e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" * (cast_expression "(int *)(unaff_EBP + 0x57a3e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3e)" ( (binary_expression "unaff_EBP + 0x57a3e" identifier + number_literal) )))) + (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar7)" ( (binary_expression "0xfffffffe < uVar7" number_literal < identifier) ))))) ;) (goto_statement "goto LAB_00031fb8;" goto statement_identifier ;) })) (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" identifier = (cast_expression "(undefined4 *)*piVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (labeled_statement "LAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" statement_identifier : (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" if (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" ( (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x180)" ( (binary_expression "iVar4 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" { (if_statement "if (local_20 == 2) goto LAB_000322f9;" if (parenthesized_expression "(local_20 == 2)" ( (binary_expression "local_20 == 2" identifier == number_literal) )) (goto_statement "goto LAB_000322f9;" goto statement_identifier ;)) (labeled_statement "LAB_000320cb:\n          uVar7 = puVar14[5];" statement_identifier : (expression_statement "uVar7 = puVar14[5];" (assignment_expression "uVar7 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;)) (expression_statement "bVar6 = local_20;" (assignment_expression "bVar6 = local_20" identifier = identifier) ;) (goto_statement "goto joined_r0x00032311;" goto statement_identifier ;) }))) (if_statement "if (local_20 == 2) goto LAB_0003236d;" if (parenthesized_expression "(local_20 == 2)" ( (binary_expression "local_20 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0003236d;" goto statement_identifier ;)) }) (else_clause "else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" else (if_statement "if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" if (parenthesized_expression "(local_20 == 5)" ( (binary_expression "local_20 == 5" identifier == number_literal) )) (compound_statement "{\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }" { (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2dd5a,5)" identifier (argument_list "(0,unaff_EBP + 0x2dd5a,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2dd5a" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bc80(uVar10);" (call_expression "FUN_0002bc80(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" identifier = (cast_expression "(undefined4 *)*piVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }" if (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" ( (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x180)" ( (binary_expression "iVar4 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }" { (labeled_statement "LAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;" statement_identifier : (if_statement "if (local_24 == 0 && local_28 == 0) goto LAB_00032182;" if (parenthesized_expression "(local_24 == 0 && local_28 == 0)" ( (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" identifier == number_literal) && (binary_expression "local_28 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00032182;" goto statement_identifier ;))) (expression_statement "uVar7 = puVar14[5];" (assignment_expression "uVar7 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "bVar6 = 2;" (assignment_expression "bVar6 = 2" identifier = number_literal) ;) (labeled_statement "joined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" statement_identifier : (if_statement "if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" if (parenthesized_expression "((uVar7 & 0x103) == 1)" ( (binary_expression "(uVar7 & 0x103) == 1" (parenthesized_expression "(uVar7 & 0x103)" ( (binary_expression "uVar7 & 0x103" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" { (expression_statement "uVar10 = *puVar14;" (assignment_expression "uVar10 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);" (assignment_expression "uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2dd7e,5)" identifier (argument_list "(0,unaff_EBP + 0x2dd7e,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2dd7e" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar12,uVar10);" (call_expression "FUN_0002bd60(uVar12,uVar10)" identifier (argument_list "(uVar12,uVar10)" ( identifier , identifier ))) ;) }))) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar9 = FUN_0001fe30(local_30,&local_34);" (assignment_expression "iVar9 = FUN_0001fe30(local_30,&local_34)" identifier = (call_expression "FUN_0001fe30(local_30,&local_34)" identifier (argument_list "(local_30,&local_34)" ( identifier , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }" { (labeled_statement "LAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);" statement_identifier : (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde)" identifier (argument_list "(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde)" ( (binary_expression "unaff_EBP + 0x2e36e" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x2ecde" identifier + number_literal) ))) ;)) })) (if_statement "if (bVar6 == 2) goto LAB_000321a5;" if (parenthesized_expression "(bVar6 == 2)" ( (binary_expression "bVar6 == 2" identifier == number_literal) )) (goto_statement "goto LAB_000321a5;" goto statement_identifier ;)) (if_statement "if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" if (parenthesized_expression "(bVar6 == 6)" ( (binary_expression "bVar6 == 6" identifier == number_literal) )) (compound_statement "{\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }" { (if_statement "if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }" if (parenthesized_expression "((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1))" ( (binary_expression "(((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)" (parenthesized_expression "(((local_1f & 1) != 0) && ((int)local_28 < 0x14))" ( (binary_expression "((local_1f & 1) != 0) && ((int)local_28 < 0x14)" (parenthesized_expression "((local_1f & 1) != 0)" ( (binary_expression "(local_1f & 1) != 0" (parenthesized_expression "(local_1f & 1)" ( (binary_expression "local_1f & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((int)local_28 < 0x14)" ( (binary_expression "(int)local_28 < 0x14" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) && (parenthesized_expression "(*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)" ( (binary_expression "*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1" (pointer_expression "*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" * (cast_expression "(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" ( (binary_expression "&UNK_000579c8 + local_28 * 2 + unaff_EBP" (binary_expression "&UNK_000579c8 + local_28 * 2" (pointer_expression "&UNK_000579c8" & identifier) + (binary_expression "local_28 * 2" identifier * number_literal)) + identifier) )))) == number_literal) ))) )) (compound_statement "{\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }" { (expression_statement "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;" (assignment_expression "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0" (pointer_expression "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP)" * (cast_expression "(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000579ca + local_28 * 2 + unaff_EBP)" ( (binary_expression "&DAT_000579ca + local_28 * 2 + unaff_EBP" (binary_expression "&DAT_000579ca + local_28 * 2" (pointer_expression "&DAT_000579ca" & identifier) + (binary_expression "local_28 * 2" identifier * number_literal)) + identifier) )))) = number_literal) ;) })) (expression_statement "uVar7 = FUN_0002d560();" (assignment_expression "uVar7 = FUN_0002d560()" identifier = (call_expression "FUN_0002d560()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00024b20(uVar7);" (call_expression "FUN_00024b20(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "uVar8 = FUN_0002d560();" (assignment_expression "uVar8 = FUN_0002d560()" identifier = (call_expression "FUN_0002d560()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }" if (parenthesized_expression "(uVar7 < uVar8)" ( (binary_expression "uVar7 < uVar8" identifier < identifier) )) (compound_statement "{\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }" { (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde)" identifier (argument_list "(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde)" ( (binary_expression "unaff_EBP + 0x2e36e" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x2ecde" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" else (compound_statement "{\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" { (expression_statement "uVar10 = FUN_00021220(local_30);" (assignment_expression "uVar10 = FUN_00021220(local_30)" identifier = (call_expression "FUN_00021220(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;) (expression_statement "FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);" (call_expression "FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0)" identifier (argument_list "(0xb,10,0,param_1,uVar10,0,0,0)" ( number_literal , number_literal , number_literal , identifier , identifier , number_literal , number_literal , number_literal ))) ;) }))) (goto_statement "goto LAB_00031fb8;" goto statement_identifier ;) })) (labeled_statement "LAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;" statement_identifier : (if_statement "if (local_24 == 0 && local_28 == 0) goto LAB_00032279;" if (parenthesized_expression "(local_24 == 0 && local_28 == 0)" ( (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" identifier == number_literal) && (binary_expression "local_28 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00032279;" goto statement_identifier ;))) }) (else_clause "else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" else (compound_statement "{\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" { (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" identifier = (cast_expression "(undefined4 *)*piVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (if_statement "if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;" if (parenthesized_expression "((local_20 != 2) || (param_1 == 0))" ( (binary_expression "(local_20 != 2) || (param_1 == 0)" (parenthesized_expression "(local_20 != 2)" ( (binary_expression "local_20 != 2" identifier != number_literal) )) || (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00032225;" goto statement_identifier ;)) (expression_statement "local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;" (assignment_expression "local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7" identifier = (binary_expression "(byte)~(byte)(local_24 >> 0x18) >> 7" (cast_expression "(byte)~(byte)(local_24 >> 0x18)" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~(byte)(local_24 >> 0x18)" ~ (call_expression "(byte)(local_24 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_24 >> 0x18)" ( (binary_expression "local_24 >> 0x18" identifier >> number_literal) ))))) >> number_literal)) ;) (if_statement "if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }" if (parenthesized_expression "(local_54 == ((local_1f >> 1 ^ 1) & 1))" ( (binary_expression "local_54 == ((local_1f >> 1 ^ 1) & 1)" identifier == (parenthesized_expression "((local_1f >> 1 ^ 1) & 1)" ( (binary_expression "(local_1f >> 1 ^ 1) & 1" (parenthesized_expression "(local_1f >> 1 ^ 1)" ( (binary_expression "local_1f >> 1 ^ 1" (binary_expression "local_1f >> 1" identifier >> number_literal) ^ number_literal) )) & number_literal) ))) )) (compound_statement "{\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }" { (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;" if (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" ( (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x180)" ( (binary_expression "iVar4 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_000322f9;" goto statement_identifier ;)) (goto_statement "goto LAB_0003236d;" goto statement_identifier ;) })) (expression_statement "bVar6 = local_1f >> 1 & 1;" (assignment_expression "bVar6 = local_1f >> 1 & 1" identifier = (binary_expression "local_1f >> 1 & 1" (binary_expression "local_1f >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "*(uint *)(&DAT_000579ce + unaff_EBP) = local_24;" (assignment_expression "*(uint *)(&DAT_000579ce + unaff_EBP) = local_24" (pointer_expression "*(uint *)(&DAT_000579ce + unaff_EBP)" * (cast_expression "(uint *)(&DAT_000579ce + unaff_EBP)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000579ce + unaff_EBP)" ( (binary_expression "&DAT_000579ce + unaff_EBP" (pointer_expression "&DAT_000579ce" & identifier) + identifier) )))) = identifier) ;) (expression_statement "*(uint *)(&DAT_000579ca + unaff_EBP) = local_28;" (assignment_expression "*(uint *)(&DAT_000579ca + unaff_EBP) = local_28" (pointer_expression "*(uint *)(&DAT_000579ca + unaff_EBP)" * (cast_expression "(uint *)(&DAT_000579ca + unaff_EBP)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000579ca + unaff_EBP)" ( (binary_expression "&DAT_000579ca + unaff_EBP" (pointer_expression "&DAT_000579ca" & identifier) + identifier) )))) = identifier) ;) (expression_statement "local_4c = 4;" (assignment_expression "local_4c = 4" identifier = number_literal) ;) (if_statement "if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }" if (parenthesized_expression "(local_54 != (bVar6 ^ 1))" ( (binary_expression "local_54 != (bVar6 ^ 1)" identifier != (parenthesized_expression "(bVar6 ^ 1)" ( (binary_expression "bVar6 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }" { (expression_statement "local_4c = 5;" (assignment_expression "local_4c = 5" identifier = number_literal) ;) (expression_statement "*(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;" (assignment_expression "*(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6" (pointer_expression "*(ushort *)(&DAT_000579d2 + unaff_EBP)" * (cast_expression "(ushort *)(&DAT_000579d2 + unaff_EBP)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000579d2 + unaff_EBP)" ( (binary_expression "&DAT_000579d2 + unaff_EBP" (pointer_expression "&DAT_000579d2" & identifier) + identifier) )))) = (unary_expression "-(ushort)bVar6" - (cast_expression "(ushort)bVar6" ( (type_descriptor "ushort" type_identifier) ) identifier))) ;) })) (expression_statement "local_20 = 6;" (assignment_expression "local_20 = 6" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_28 = local_4c;" (assignment_expression "local_28 = local_4c" identifier = identifier) ;) (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;" if (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" ( (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x180)" ( (binary_expression "iVar4 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_000320cb;" goto statement_identifier ;)) }))))) (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2ddd2,5)" identifier (argument_list "(0,unaff_EBP + 0x2ddd2,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2ddd2" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar10);" (call_expression "FUN_0002bd60(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (labeled_statement "LAB_00032279:\n      uVar7 = *puVar2;" statement_identifier : (expression_statement "uVar7 = *puVar2;" (assignment_expression "uVar7 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;)) (expression_statement "*puVar2 = *puVar2 + 1;" (assignment_expression "*puVar2 = *puVar2 + 1" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 + 1" (pointer_expression "*puVar2" * identifier) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);" (assignment_expression "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" * (cast_expression "(int *)(unaff_EBP + 0x57a3e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3e)" ( (binary_expression "unaff_EBP + 0x57a3e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" * (cast_expression "(int *)(unaff_EBP + 0x57a3e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a3e)" ( (binary_expression "unaff_EBP + 0x57a3e" identifier + number_literal) )))) + (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar7)" ( (binary_expression "0xfffffffe < uVar7" number_literal < identifier) ))))) ;) }))) (labeled_statement "LAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);" statement_identifier : (expression_statement "piVar3 = (int *)(unaff_EBP + 0x57a42);" (assignment_expression "piVar3 = (int *)(unaff_EBP + 0x57a42)" identifier = (cast_expression "(int *)(unaff_EBP + 0x57a42)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x57a42)" ( (binary_expression "unaff_EBP + 0x57a42" identifier + number_literal) )))) ;)) (expression_statement "pcVar5 = (char *)*piVar3;" (assignment_expression "pcVar5 = (char *)*piVar3" identifier = (cast_expression "(char *)*piVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "*piVar3 = (int)(pcVar5 + 1);" (assignment_expression "*piVar3 = (int)(pcVar5 + 1)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(pcVar5 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar5 + 1)" ( (binary_expression "pcVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }" if (parenthesized_expression "(*pcVar5 != ',')" ( (binary_expression "*pcVar5 != ','" (pointer_expression "*pcVar5" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }" { (expression_statement "*piVar3 = (int)pcVar5;" (assignment_expression "*piVar3 = (int)pcVar5" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) (unary_expression - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) + IDENT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) + IDENT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , LIT , IDENT , IDENT , LIT , LIT , LIT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression ~ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) ^ LIT) )) & LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;)) }))))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_00031f30(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  byte bVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte local_54;\n  uint local_4c;\n  undefined4 local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  uint local_24;\n  byte local_20;\n  byte local_1f;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(unaff_EBP + 0x57806);\n  iVar4 = *(int *)(unaff_EBP + 0x4e072);\n  puVar2 = (uint *)(unaff_EBP + 0x57a3a);\n  do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_00031f30(int param_1)" (identifier "FUN_00031f30") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  byte bVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte local_54;\n  uint local_4c;\n  undefined4 local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  uint local_24;\n  byte local_20;\n  byte local_1f;\n  \n  FUN_0001fe10();\n  piVar1 = (int *)(unaff_EBP + 0x57806);\n  iVar4 = *(int *)(unaff_EBP + 0x4e072);\n  puVar2 = (uint *)(unaff_EBP + 0x57a3a);\n  do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint *puVar2;" (type_identifier "uint") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "byte local_54;" (type_identifier "byte") (identifier "local_54") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined1 local_30 [8];" (type_identifier "undefined1") (array_declarator "local_30 [8]" (identifier "local_30") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "byte local_20;" (type_identifier "byte") (identifier "local_20") (; ";")) (declaration "byte local_1f;" (type_identifier "byte") (identifier "local_1f") (; ";")) (expression_statement "FUN_0001fe10();" (call_expression "FUN_0001fe10()" (identifier "FUN_0001fe10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar1 = (int *)(unaff_EBP + 0x57806);" (assignment_expression "piVar1 = (int *)(unaff_EBP + 0x57806)" (identifier "piVar1") (= "=") (cast_expression "(int *)(unaff_EBP + 0x57806)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x57806)" (( "(") (binary_expression "unaff_EBP + 0x57806" (identifier "unaff_EBP") (+ "+") (number_literal "0x57806")) () ")")))) (; ";")) (expression_statement "iVar4 = *(int *)(unaff_EBP + 0x4e072);" (assignment_expression "iVar4 = *(int *)(unaff_EBP + 0x4e072)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(unaff_EBP + 0x4e072)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x4e072)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4e072)" (( "(") (binary_expression "unaff_EBP + 0x4e072" (identifier "unaff_EBP") (+ "+") (number_literal "0x4e072")) () ")"))))) (; ";")) (expression_statement "puVar2 = (uint *)(unaff_EBP + 0x57a3a);" (assignment_expression "puVar2 = (uint *)(unaff_EBP + 0x57a3a)" (identifier "puVar2") (= "=") (cast_expression "(uint *)(unaff_EBP + 0x57a3a)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x57a3a)" (( "(") (binary_expression "unaff_EBP + 0x57a3a" (identifier "unaff_EBP") (+ "+") (number_literal "0x57a3a")) () ")")))) (; ";")) (do_statement "do {\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    FUN_000221d0(0,local_30,2);\n    if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }\nLAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);\n    pcVar5 = (char *)*piVar3;\n    *piVar3 = (int)(pcVar5 + 1);\n    if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }\n  }" ({ "{") (expression_statement "FUN_000221d0(0,local_30,2);" (call_expression "FUN_000221d0(0,local_30,2)" (identifier "FUN_000221d0") (argument_list "(0,local_30,2)" (( "(") (number_literal "0") (, ",") (identifier "local_30") (, ",") (number_literal "2") () ")"))) (; ";")) (if_statement "if (local_20 < 2) {\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }\n    else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" (if "if") (parenthesized_expression "(local_20 < 2)" (( "(") (binary_expression "local_20 < 2" (identifier "local_20") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);\n      FUN_0002bc80(uVar10);\n      local_28 = 0;\n      local_24 = 0;\n      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;\nLAB_00032182:\n      local_34 = 0xffffffff;\n      iVar9 = FUN_0001fe30(local_30,&local_34);\n      if (iVar9 != 0) goto LAB_000323f2;\nLAB_000321a5:\n      uVar8 = local_24;\n      uVar7 = local_28;\n      if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }\n      uVar10 = FUN_00024b20(uVar11);\n      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);\n      if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }\n    }" ({ "{") (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,unaff_EBP + 0x2dd36,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2dd36,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2dd36" (identifier "unaff_EBP") (+ "+") (number_literal "0x2dd36")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc80(uVar10);" (call_expression "FUN_0002bc80(uVar10)" (identifier "FUN_0002bc80") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;" (if "if") (parenthesized_expression "(*piVar1 == iVar4 + 0x180)" (( "(") (binary_expression "*piVar1 == iVar4 + 0x180" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (binary_expression "iVar4 + 0x180" (identifier "iVar4") (+ "+") (number_literal "0x180"))) () ")")) (goto_statement "goto LAB_00032279;" (goto "goto") (statement_identifier "LAB_00032279") (; ";"))) (labeled_statement "LAB_00032182:\n      local_34 = 0xffffffff;" (statement_identifier "LAB_00032182") (: ":") (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" (identifier "local_34") (= "=") (number_literal "0xffffffff")) (; ";"))) (expression_statement "iVar9 = FUN_0001fe30(local_30,&local_34);" (assignment_expression "iVar9 = FUN_0001fe30(local_30,&local_34)" (identifier "iVar9") (= "=") (call_expression "FUN_0001fe30(local_30,&local_34)" (identifier "FUN_0001fe30") (argument_list "(local_30,&local_34)" (( "(") (identifier "local_30") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_000323f2;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000323f2;" (goto "goto") (statement_identifier "LAB_000323f2") (; ";"))) (labeled_statement "LAB_000321a5:\n      uVar8 = local_24;" (statement_identifier "LAB_000321a5") (: ":") (expression_statement "uVar8 = local_24;" (assignment_expression "uVar8 = local_24" (identifier "uVar8") (= "=") (identifier "local_24")) (; ";"))) (expression_statement "uVar7 = local_28;" (assignment_expression "uVar7 = local_28" (identifier "uVar7") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (param_1 == 0) {\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }\n      else {\n        uVar11 = FUN_0002d520();\n      }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar11 = 0;\n        uVar13 = local_28;\n        uVar15 = local_24;\n        do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);\n      }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = local_28;" (assignment_expression "uVar13 = local_28" (identifier "uVar13") (= "=") (identifier "local_28")) (; ";")) (expression_statement "uVar15 = local_24;" (assignment_expression "uVar15 = local_24" (identifier "uVar15") (= "=") (identifier "local_24")) (; ";")) (do_statement "do {\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        } while (uVar15 != 0 || uVar13 != 0);" (do "do") (compound_statement "{\n          uVar13 = uVar13 >> 7 | uVar15 << 0x19;\n          uVar15 = uVar15 >> 7;\n          uVar11 = uVar11 + 1;\n        }" ({ "{") (expression_statement "uVar13 = uVar13 >> 7 | uVar15 << 0x19;" (assignment_expression "uVar13 = uVar13 >> 7 | uVar15 << 0x19" (identifier "uVar13") (= "=") (binary_expression "uVar13 >> 7 | uVar15 << 0x19" (binary_expression "uVar13 >> 7" (identifier "uVar13") (>> ">>") (number_literal "7")) (| "|") (binary_expression "uVar15 << 0x19" (identifier "uVar15") (<< "<<") (number_literal "0x19")))) (; ";")) (expression_statement "uVar15 = uVar15 >> 7;" (assignment_expression "uVar15 = uVar15 >> 7" (identifier "uVar15") (= "=") (binary_expression "uVar15 >> 7" (identifier "uVar15") (>> ">>") (number_literal "7"))) (; ";")) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar15 != 0 || uVar13 != 0)" (( "(") (binary_expression "uVar15 != 0 || uVar13 != 0" (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n        uVar11 = FUN_0002d520();\n      }" (else "else") (compound_statement "{\n        uVar11 = FUN_0002d520();\n      }" ({ "{") (expression_statement "uVar11 = FUN_0002d520();" (assignment_expression "uVar11 = FUN_0002d520()" (identifier "uVar11") (= "=") (call_expression "FUN_0002d520()" (identifier "FUN_0002d520") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar10 = FUN_00024b20(uVar11);" (assignment_expression "uVar10 = FUN_00024b20(uVar11)" (identifier "uVar10") (= "=") (call_expression "FUN_00024b20(uVar11)" (identifier "FUN_00024b20") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);" (assignment_expression "uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1)" (identifier "uVar7") (= "=") (call_expression "FUN_00031e70(uVar10,uVar7,uVar8,param_1)" (identifier "FUN_00031e70") (argument_list "(uVar10,uVar7,uVar8,param_1)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar7") (, ",") (identifier "uVar8") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (uVar11 < uVar7) {\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }" (if "if") (parenthesized_expression "(uVar11 < uVar7)" (( "(") (binary_expression "uVar11 < uVar7" (identifier "uVar11") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n                    \n        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);\n      }" ({ "{") (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde)" (identifier "FUN_0002be80") (argument_list "(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde)" (( "(") (binary_expression "unaff_EBP + 0x2e36e" (identifier "unaff_EBP") (+ "+") (number_literal "0x2e36e")) (, ",") (number_literal "0x1459") (, ",") (binary_expression "unaff_EBP + 0x2ecde" (identifier "unaff_EBP") (+ "+") (number_literal "0x2ecde")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" (else "else") (compound_statement "{\n      if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }\n      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);\n      FUN_0002bd60(uVar10);\nLAB_00032279:\n      uVar7 = *puVar2;\n      *puVar2 = *puVar2 + 1;\n      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);\n    }" ({ "{") (if_statement "if (local_20 == 6) {\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }\n      else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" (if "if") (parenthesized_expression "(local_20 == 6)" (( "(") (binary_expression "local_20 == 6" (identifier "local_20") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }\n        puVar14 = (undefined4 *)*piVar1;\nLAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }\n        if (local_20 == 2) goto LAB_0003236d;\n      }" ({ "{") (if_statement "if ((int)(uint)(local_28 != 0) <= (int)-local_24) {\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }" (if "if") (parenthesized_expression "((int)(uint)(local_28 != 0) <= (int)-local_24)" (( "(") (binary_expression "(int)(uint)(local_28 != 0) <= (int)-local_24" (cast_expression "(int)(uint)(local_28 != 0)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(local_28 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_28 != 0)" (( "(") (binary_expression "local_28 != 0" (identifier "local_28") (!= "!=") (number_literal "0")) () ")")))) (<= "<=") (cast_expression "(int)-local_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (unary_expression "-local_24" (- "-") (identifier "local_24")))) () ")")) (compound_statement "{\n          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);\n          FUN_0002bd60(uVar10);\n          local_28 = 0;\n          local_24 = 0;\n          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;\n          uVar7 = *puVar2;\n          *puVar2 = *puVar2 + 1;\n          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;\n          goto LAB_00031fb8;\n        }" ({ "{") (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,unaff_EBP + 0x2bbae,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2bbae,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2bbae" (identifier "unaff_EBP") (+ "+") (number_literal "0x2bbae")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar10);" (call_expression "FUN_0002bd60(uVar10)" (identifier "FUN_0002bd60") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;" (if "if") (parenthesized_expression "(*piVar1 != iVar4 + 0x180)" (( "(") (binary_expression "*piVar1 != iVar4 + 0x180" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (binary_expression "iVar4 + 0x180" (identifier "iVar4") (+ "+") (number_literal "0x180"))) () ")")) (goto_statement "goto LAB_00032182;" (goto "goto") (statement_identifier "LAB_00032182") (; ";"))) (expression_statement "uVar7 = *puVar2;" (assignment_expression "uVar7 = *puVar2" (identifier "uVar7") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "*puVar2 = *puVar2 + 1;" (assignment_expression "*puVar2 = *puVar2 + 1" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "*puVar2 + 1" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)\n          ;" (assignment_expression "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x57a3e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x57a3e)" (( "(") (binary_expression "unaff_EBP + 0x57a3e" (identifier "unaff_EBP") (+ "+") (number_literal "0x57a3e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x57a3e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x57a3e)" (( "(") (binary_expression "unaff_EBP + 0x57a3e" (identifier "unaff_EBP") (+ "+") (number_literal "0x57a3e")) () ")")))) (+ "+") (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffe < uVar7)" (( "(") (binary_expression "0xfffffffe < uVar7" (number_literal "0xfffffffe") (< "<") (identifier "uVar7")) () ")"))))) (; ";")) (goto_statement "goto LAB_00031fb8;" (goto "goto") (statement_identifier "LAB_00031fb8") (; ";")) (} "}"))) (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)*piVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (labeled_statement "LAB_00032225:\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" (statement_identifier "LAB_00032225") (: ":") (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" (if "if") (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" (( "(") (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)(iVar4 + 0x180)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x180)" (( "(") (binary_expression "iVar4 + 0x180" (identifier "iVar4") (+ "+") (number_literal "0x180")) () ")")))) () ")")) (compound_statement "{\n          if (local_20 == 2) goto LAB_000322f9;\nLAB_000320cb:\n          uVar7 = puVar14[5];\n          bVar6 = local_20;\n          goto joined_r0x00032311;\n        }" ({ "{") (if_statement "if (local_20 == 2) goto LAB_000322f9;" (if "if") (parenthesized_expression "(local_20 == 2)" (( "(") (binary_expression "local_20 == 2" (identifier "local_20") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_000322f9;" (goto "goto") (statement_identifier "LAB_000322f9") (; ";"))) (labeled_statement "LAB_000320cb:\n          uVar7 = puVar14[5];" (statement_identifier "LAB_000320cb") (: ":") (expression_statement "uVar7 = puVar14[5];" (assignment_expression "uVar7 = puVar14[5]" (identifier "uVar7") (= "=") (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]"))) (; ";"))) (expression_statement "bVar6 = local_20;" (assignment_expression "bVar6 = local_20" (identifier "bVar6") (= "=") (identifier "local_20")) (; ";")) (goto_statement "goto joined_r0x00032311;" (goto "goto") (statement_identifier "joined_r0x00032311") (; ";")) (} "}")))) (if_statement "if (local_20 == 2) goto LAB_0003236d;" (if "if") (parenthesized_expression "(local_20 == 2)" (( "(") (binary_expression "local_20 == 2" (identifier "local_20") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0003236d;" (goto "goto") (statement_identifier "LAB_0003236d") (; ";"))) (} "}")) (else_clause "else if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" (else "else") (if_statement "if (local_20 == 5) {\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }\n      else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" (if "if") (parenthesized_expression "(local_20 == 5)" (( "(") (binary_expression "local_20 == 5" (identifier "local_20") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);\n        FUN_0002bc80(uVar10);\n        puVar14 = (undefined4 *)*piVar1;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }\nLAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;\n      }" ({ "{") (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,unaff_EBP + 0x2dd5a,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2dd5a,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2dd5a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2dd5a")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc80(uVar10);" (call_expression "FUN_0002bc80(uVar10)" (identifier "FUN_0002bc80") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)*piVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }" (if "if") (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" (( "(") (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)(iVar4 + 0x180)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x180)" (( "(") (binary_expression "iVar4 + 0x180" (identifier "iVar4") (+ "+") (number_literal "0x180")) () ")")))) () ")")) (compound_statement "{\nLAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;\n          uVar7 = puVar14[5];\n          bVar6 = 2;\njoined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }\n          local_34 = 0xffffffff;\n          iVar9 = FUN_0001fe30(local_30,&local_34);\n          if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }\n          if (bVar6 == 2) goto LAB_000321a5;\n          if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }\n          goto LAB_00031fb8;\n        }" ({ "{") (labeled_statement "LAB_000322f9:\n          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;" (statement_identifier "LAB_000322f9") (: ":") (if_statement "if (local_24 == 0 && local_28 == 0) goto LAB_00032182;" (if "if") (parenthesized_expression "(local_24 == 0 && local_28 == 0)" (( "(") (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_28 == 0" (identifier "local_28") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00032182;" (goto "goto") (statement_identifier "LAB_00032182") (; ";")))) (expression_statement "uVar7 = puVar14[5];" (assignment_expression "uVar7 = puVar14[5]" (identifier "uVar7") (= "=") (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "bVar6 = 2;" (assignment_expression "bVar6 = 2" (identifier "bVar6") (= "=") (number_literal "2")) (; ";")) (labeled_statement "joined_r0x00032311:\n          if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" (statement_identifier "joined_r0x00032311") (: ":") (if_statement "if ((uVar7 & 0x103) == 1) {\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" (if "if") (parenthesized_expression "((uVar7 & 0x103) == 1)" (( "(") (binary_expression "(uVar7 & 0x103) == 1" (parenthesized_expression "(uVar7 & 0x103)" (( "(") (binary_expression "uVar7 & 0x103" (identifier "uVar7") (& "&") (number_literal "0x103")) () ")")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            uVar10 = *puVar14;\n            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);\n            FUN_0002bd60(uVar12,uVar10);\n          }" ({ "{") (expression_statement "uVar10 = *puVar14;" (assignment_expression "uVar10 = *puVar14" (identifier "uVar10") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);" (assignment_expression "uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,unaff_EBP + 0x2dd7e,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2dd7e,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2dd7e" (identifier "unaff_EBP") (+ "+") (number_literal "0x2dd7e")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar12,uVar10);" (call_expression "FUN_0002bd60(uVar12,uVar10)" (identifier "FUN_0002bd60") (argument_list "(uVar12,uVar10)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}")))) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" (identifier "local_34") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar9 = FUN_0001fe30(local_30,&local_34);" (assignment_expression "iVar9 = FUN_0001fe30(local_30,&local_34)" (identifier "iVar9") (= "=") (call_expression "FUN_0001fe30(local_30,&local_34)" (identifier "FUN_0001fe30") (argument_list "(local_30,&local_34)" (( "(") (identifier "local_30") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);\n          }" ({ "{") (labeled_statement "LAB_000323f2:\n                    \n            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);" (statement_identifier "LAB_000323f2") (: ":") (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde)" (identifier "FUN_0002be80") (argument_list "(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde)" (( "(") (binary_expression "unaff_EBP + 0x2e36e" (identifier "unaff_EBP") (+ "+") (number_literal "0x2e36e")) (, ",") (number_literal "0x1447") (, ",") (binary_expression "unaff_EBP + 0x2ecde" (identifier "unaff_EBP") (+ "+") (number_literal "0x2ecde")) () ")"))) (; ";"))) (} "}"))) (if_statement "if (bVar6 == 2) goto LAB_000321a5;" (if "if") (parenthesized_expression "(bVar6 == 2)" (( "(") (binary_expression "bVar6 == 2" (identifier "bVar6") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_000321a5;" (goto "goto") (statement_identifier "LAB_000321a5") (; ";"))) (if_statement "if (bVar6 == 6) {\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }\n          else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" (if "if") (parenthesized_expression "(bVar6 == 6)" (( "(") (binary_expression "bVar6 == 6" (identifier "bVar6") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }\n            uVar7 = FUN_0002d560();\n            FUN_00024b20(uVar7);\n            uVar8 = FUN_0002d560();\n            if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }\n          }" ({ "{") (if_statement "if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }" (if "if") (parenthesized_expression "((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1))" (( "(") (binary_expression "(((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&\n               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)" (parenthesized_expression "(((local_1f & 1) != 0) && ((int)local_28 < 0x14))" (( "(") (binary_expression "((local_1f & 1) != 0) && ((int)local_28 < 0x14)" (parenthesized_expression "((local_1f & 1) != 0)" (( "(") (binary_expression "(local_1f & 1) != 0" (parenthesized_expression "(local_1f & 1)" (( "(") (binary_expression "local_1f & 1" (identifier "local_1f") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((int)local_28 < 0x14)" (( "(") (binary_expression "(int)local_28 < 0x14" (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")) (< "<") (number_literal "0x14")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)" (( "(") (binary_expression "*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1" (pointer_expression "*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" (* "*") (cast_expression "(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_000579c8 + local_28 * 2 + unaff_EBP)" (( "(") (binary_expression "&UNK_000579c8 + local_28 * 2 + unaff_EBP" (binary_expression "&UNK_000579c8 + local_28 * 2" (pointer_expression "&UNK_000579c8" (& "&") (identifier "UNK_000579c8")) (+ "+") (binary_expression "local_28 * 2" (identifier "local_28") (* "*") (number_literal "2"))) (+ "+") (identifier "unaff_EBP")) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;\n            }" ({ "{") (expression_statement "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;" (assignment_expression "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0" (pointer_expression "*(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP)" (* "*") (cast_expression "(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000579ca + local_28 * 2 + unaff_EBP)" (( "(") (binary_expression "&DAT_000579ca + local_28 * 2 + unaff_EBP" (binary_expression "&DAT_000579ca + local_28 * 2" (pointer_expression "&DAT_000579ca" (& "&") (identifier "DAT_000579ca")) (+ "+") (binary_expression "local_28 * 2" (identifier "local_28") (* "*") (number_literal "2"))) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_0002d560();" (assignment_expression "uVar7 = FUN_0002d560()" (identifier "uVar7") (= "=") (call_expression "FUN_0002d560()" (identifier "FUN_0002d560") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_00024b20(uVar7);" (call_expression "FUN_00024b20(uVar7)" (identifier "FUN_00024b20") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "uVar8 = FUN_0002d560();" (assignment_expression "uVar8 = FUN_0002d560()" (identifier "uVar8") (= "=") (call_expression "FUN_0002d560()" (identifier "FUN_0002d560") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar7 < uVar8) {\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }" (if "if") (parenthesized_expression "(uVar7 < uVar8)" (( "(") (binary_expression "uVar7 < uVar8" (identifier "uVar7") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n                    \n              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);\n            }" ({ "{") (expression_statement "FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);" (call_expression "FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde)" (identifier "FUN_0002be80") (argument_list "(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde)" (( "(") (binary_expression "unaff_EBP + 0x2e36e" (identifier "unaff_EBP") (+ "+") (number_literal "0x2e36e")) (, ",") (number_literal "0x146d") (, ",") (binary_expression "unaff_EBP + 0x2ecde" (identifier "unaff_EBP") (+ "+") (number_literal "0x2ecde")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" (else "else") (compound_statement "{\n            uVar10 = FUN_00021220(local_30);\n            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);\n          }" ({ "{") (expression_statement "uVar10 = FUN_00021220(local_30);" (assignment_expression "uVar10 = FUN_00021220(local_30)" (identifier "uVar10") (= "=") (call_expression "FUN_00021220(local_30)" (identifier "FUN_00021220") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")")))) (; ";")) (expression_statement "FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);" (call_expression "FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0)" (identifier "FUN_00024b60") (argument_list "(0xb,10,0,param_1,uVar10,0,0,0)" (( "(") (number_literal "0xb") (, ",") (number_literal "10") (, ",") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "uVar10") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00031fb8;" (goto "goto") (statement_identifier "LAB_00031fb8") (; ";")) (} "}"))) (labeled_statement "LAB_0003236d:\n        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;" (statement_identifier "LAB_0003236d") (: ":") (if_statement "if (local_24 == 0 && local_28 == 0) goto LAB_00032279;" (if "if") (parenthesized_expression "(local_24 == 0 && local_28 == 0)" (( "(") (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_28 == 0" (identifier "local_28") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00032279;" (goto "goto") (statement_identifier "LAB_00032279") (; ";")))) (} "}")) (else_clause "else {\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" (else "else") (compound_statement "{\n        puVar14 = (undefined4 *)*piVar1;\n        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;\n        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;\n        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }\n        bVar6 = local_1f >> 1 & 1;\n        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;\n        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;\n        local_4c = 4;\n        if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }\n        local_20 = 6;\n        local_24 = 0;\n        local_28 = local_4c;\n        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;\n      }" ({ "{") (expression_statement "puVar14 = (undefined4 *)*piVar1;" (assignment_expression "puVar14 = (undefined4 *)*piVar1" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)*piVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (if_statement "if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;" (if "if") (parenthesized_expression "((local_20 != 2) || (param_1 == 0))" (( "(") (binary_expression "(local_20 != 2) || (param_1 == 0)" (parenthesized_expression "(local_20 != 2)" (( "(") (binary_expression "local_20 != 2" (identifier "local_20") (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00032225;" (goto "goto") (statement_identifier "LAB_00032225") (; ";"))) (expression_statement "local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;" (assignment_expression "local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7" (identifier "local_54") (= "=") (binary_expression "(byte)~(byte)(local_24 >> 0x18) >> 7" (cast_expression "(byte)~(byte)(local_24 >> 0x18)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (unary_expression "~(byte)(local_24 >> 0x18)" (~ "~") (call_expression "(byte)(local_24 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_24 >> 0x18)" (( "(") (binary_expression "local_24 >> 0x18" (identifier "local_24") (>> ">>") (number_literal "0x18")) () ")"))))) (>> ">>") (number_literal "7"))) (; ";")) (if_statement "if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }" (if "if") (parenthesized_expression "(local_54 == ((local_1f >> 1 ^ 1) & 1))" (( "(") (binary_expression "local_54 == ((local_1f >> 1 ^ 1) & 1)" (identifier "local_54") (== "==") (parenthesized_expression "((local_1f >> 1 ^ 1) & 1)" (( "(") (binary_expression "(local_1f >> 1 ^ 1) & 1" (parenthesized_expression "(local_1f >> 1 ^ 1)" (( "(") (binary_expression "local_1f >> 1 ^ 1" (binary_expression "local_1f >> 1" (identifier "local_1f") (>> ">>") (number_literal "1")) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;\n          goto LAB_0003236d;\n        }" ({ "{") (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;" (if "if") (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" (( "(") (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)(iVar4 + 0x180)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x180)" (( "(") (binary_expression "iVar4 + 0x180" (identifier "iVar4") (+ "+") (number_literal "0x180")) () ")")))) () ")")) (goto_statement "goto LAB_000322f9;" (goto "goto") (statement_identifier "LAB_000322f9") (; ";"))) (goto_statement "goto LAB_0003236d;" (goto "goto") (statement_identifier "LAB_0003236d") (; ";")) (} "}"))) (expression_statement "bVar6 = local_1f >> 1 & 1;" (assignment_expression "bVar6 = local_1f >> 1 & 1" (identifier "bVar6") (= "=") (binary_expression "local_1f >> 1 & 1" (binary_expression "local_1f >> 1" (identifier "local_1f") (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(&DAT_000579ce + unaff_EBP) = local_24;" (assignment_expression "*(uint *)(&DAT_000579ce + unaff_EBP) = local_24" (pointer_expression "*(uint *)(&DAT_000579ce + unaff_EBP)" (* "*") (cast_expression "(uint *)(&DAT_000579ce + unaff_EBP)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000579ce + unaff_EBP)" (( "(") (binary_expression "&DAT_000579ce + unaff_EBP" (pointer_expression "&DAT_000579ce" (& "&") (identifier "DAT_000579ce")) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(uint *)(&DAT_000579ca + unaff_EBP) = local_28;" (assignment_expression "*(uint *)(&DAT_000579ca + unaff_EBP) = local_28" (pointer_expression "*(uint *)(&DAT_000579ca + unaff_EBP)" (* "*") (cast_expression "(uint *)(&DAT_000579ca + unaff_EBP)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000579ca + unaff_EBP)" (( "(") (binary_expression "&DAT_000579ca + unaff_EBP" (pointer_expression "&DAT_000579ca" (& "&") (identifier "DAT_000579ca")) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (expression_statement "local_4c = 4;" (assignment_expression "local_4c = 4" (identifier "local_4c") (= "=") (number_literal "4")) (; ";")) (if_statement "if (local_54 != (bVar6 ^ 1)) {\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }" (if "if") (parenthesized_expression "(local_54 != (bVar6 ^ 1))" (( "(") (binary_expression "local_54 != (bVar6 ^ 1)" (identifier "local_54") (!= "!=") (parenthesized_expression "(bVar6 ^ 1)" (( "(") (binary_expression "bVar6 ^ 1" (identifier "bVar6") (^ "^") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n          local_4c = 5;\n          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;\n        }" ({ "{") (expression_statement "local_4c = 5;" (assignment_expression "local_4c = 5" (identifier "local_4c") (= "=") (number_literal "5")) (; ";")) (expression_statement "*(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;" (assignment_expression "*(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6" (pointer_expression "*(ushort *)(&DAT_000579d2 + unaff_EBP)" (* "*") (cast_expression "(ushort *)(&DAT_000579d2 + unaff_EBP)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000579d2 + unaff_EBP)" (( "(") (binary_expression "&DAT_000579d2 + unaff_EBP" (pointer_expression "&DAT_000579d2" (& "&") (identifier "DAT_000579d2")) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (unary_expression "-(ushort)bVar6" (- "-") (cast_expression "(ushort)bVar6" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "bVar6")))) (; ";")) (} "}"))) (expression_statement "local_20 = 6;" (assignment_expression "local_20 = 6" (identifier "local_20") (= "=") (number_literal "6")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = local_4c;" (assignment_expression "local_28 = local_4c" (identifier "local_28") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;" (if "if") (parenthesized_expression "(puVar14 != (undefined4 *)(iVar4 + 0x180))" (( "(") (binary_expression "puVar14 != (undefined4 *)(iVar4 + 0x180)" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)(iVar4 + 0x180)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x180)" (( "(") (binary_expression "iVar4 + 0x180" (identifier "iVar4") (+ "+") (number_literal "0x180")) () ")")))) () ")")) (goto_statement "goto LAB_000320cb;" (goto "goto") (statement_identifier "LAB_000320cb") (; ";"))) (} "}")))))) (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,unaff_EBP + 0x2ddd2,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2ddd2,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2ddd2" (identifier "unaff_EBP") (+ "+") (number_literal "0x2ddd2")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar10);" (call_expression "FUN_0002bd60(uVar10)" (identifier "FUN_0002bd60") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (labeled_statement "LAB_00032279:\n      uVar7 = *puVar2;" (statement_identifier "LAB_00032279") (: ":") (expression_statement "uVar7 = *puVar2;" (assignment_expression "uVar7 = *puVar2" (identifier "uVar7") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";"))) (expression_statement "*puVar2 = *puVar2 + 1;" (assignment_expression "*puVar2 = *puVar2 + 1" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "*puVar2 + 1" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);" (assignment_expression "*(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x57a3e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x57a3e)" (( "(") (binary_expression "unaff_EBP + 0x57a3e" (identifier "unaff_EBP") (+ "+") (number_literal "0x57a3e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)" (pointer_expression "*(int *)(unaff_EBP + 0x57a3e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x57a3e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x57a3e)" (( "(") (binary_expression "unaff_EBP + 0x57a3e" (identifier "unaff_EBP") (+ "+") (number_literal "0x57a3e")) () ")")))) (+ "+") (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffe < uVar7)" (( "(") (binary_expression "0xfffffffe < uVar7" (number_literal "0xfffffffe") (< "<") (identifier "uVar7")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_00031fb8:\n    piVar3 = (int *)(unaff_EBP + 0x57a42);" (statement_identifier "LAB_00031fb8") (: ":") (expression_statement "piVar3 = (int *)(unaff_EBP + 0x57a42);" (assignment_expression "piVar3 = (int *)(unaff_EBP + 0x57a42)" (identifier "piVar3") (= "=") (cast_expression "(int *)(unaff_EBP + 0x57a42)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x57a42)" (( "(") (binary_expression "unaff_EBP + 0x57a42" (identifier "unaff_EBP") (+ "+") (number_literal "0x57a42")) () ")")))) (; ";"))) (expression_statement "pcVar5 = (char *)*piVar3;" (assignment_expression "pcVar5 = (char *)*piVar3" (identifier "pcVar5") (= "=") (cast_expression "(char *)*piVar3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")))) (; ";")) (expression_statement "*piVar3 = (int)(pcVar5 + 1);" (assignment_expression "*piVar3 = (int)(pcVar5 + 1)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)(pcVar5 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar5 + 1)" (( "(") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*pcVar5 != ',') {\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }" (if "if") (parenthesized_expression "(*pcVar5 != ',')" (( "(") (binary_expression "*pcVar5 != ','" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n      *piVar3 = (int)pcVar5;\n      FUN_0002e4e0();\n      return;\n    }" ({ "{") (expression_statement "*piVar3 = (int)pcVar5;" (assignment_expression "*piVar3 = (int)pcVar5" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar5"))) (; ";")) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" (identifier "FUN_0002e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention */

void function_1(int var_7)

{
  char var_19;
  type_1 var_24;
  type_2 var_8;
  char *pcVar4;
  type_2 var_15;
  int var_6;
  type_3 *symbol;
  type_2 var_9;
  char *format;
  type_4 *var_10;
  type_5 var_18;
  type_4 *pLVar9;
  bool bVar10;
  type_5 *sign_00;
  type_6 *var_4;
  type_1 var_23;
  type_4 *local_4c;
  type_2 nbytes;
  type_7 exp;
  
  sign_00 = &now_seg;
  var_4 = PTR__bfd_std_section_0007ffa8;
  pcVar4 = var_25;
  do {
    var_25 = pcVar4;
    var_1(0,&exp,expr_defer);
    if ((type_1)exp._16_1_ < 2) {
      pcVar4 = (char *)var_2(0,"zero assumed for missing expression",5);
      var_3(pcVar4);
      exp.X_add_number._0_4_ = (type_4 *)0x0;
      exp.X_add_number._4_4_ = 0;
      if (*sign_00 == (type_5)(var_4 + 0x180)) goto LAB_00032279;
LAB_00032182:
      nbytes = 0xffffffff;
      var_6 = var_5(&exp,&nbytes);
      if (var_6 != 0) goto LAB_000323f2;
LAB_000321a5:
      var_15 = exp.X_add_number._4_4_;
      pLVar9 = (type_4 *)exp.X_add_number;
      if (var_7 == 0) {
        var_9 = 0;
        var_10 = (type_4 *)exp.X_add_number;
        var_8 = exp.X_add_number._4_4_;
        do {
          var_10 = (type_4 *)((type_2)var_10 >> 7 | var_8 << 0x19);
          var_8 = var_8 >> 7;
          var_9 = var_9 + 1;
        } while (var_8 != 0 || var_10 != (type_4 *)0x0);
      }
      else {
        var_9 = var_11(var_12(var_4,sign_00),(int)(type_4 *)exp.X_add_number);
      }
      pcVar4 = var_13(var_9);
      var_15 = var_14(pcVar4,var_12(var_15,pLVar9),var_7);
      if (var_9 < var_15) {
                    /* WARNING: Subroutine does not return */
        var_16("../../gas/read.c",0x1459,"emit_leb128_expr");
      }
    }
    else {
      if (exp._16_1_ == '\x06') {
        if ((int)(type_2)((type_4 *)exp.X_add_number != (type_4 *)0x0) <=
            (int)-exp.X_add_number._4_4_) {
          pcVar4 = (char *)var_2(0,"floating point number invalid",5);
          var_17(pcVar4);
          exp.X_add_number._0_4_ = (type_4 *)0x0;
          exp.X_add_number._4_4_ = 0;
          if (*sign_00 != (type_5)(var_4 + 0x180)) goto LAB_00032182;
          bVar10 = 0xfffffffe < (type_2)abs_section_offset;
          abs_section_offset._0_4_ = (type_2)abs_section_offset + 1;
          abs_section_offset._4_4_ = abs_section_offset._4_4_ + (type_2)bVar10;
          goto LAB_00031fb8;
        }
        var_18 = *sign_00;
LAB_00032225:
        if (var_18 != (type_5)(var_4 + 0x180)) {
          if (exp._16_1_ == '\x02') goto LAB_000322f9;
LAB_000320cb:
          var_15 = var_18->flags;
          var_19 = exp._16_1_;
          goto joined_r0x00032311;
        }
        if (exp._16_1_ == '\x02') goto LAB_0003236d;
      }
      else if (exp._16_1_ == '\x05') {
        pcVar4 = (char *)var_2(0,"register value used as expression",5);
        var_3(pcVar4);
        var_18 = *sign_00;
        if (var_18 != (type_5)(var_4 + 0x180)) {
LAB_000322f9:
          if (exp.X_add_number._4_4_ == 0 &&
              (type_4 *)exp.X_add_number == (type_4 *)0x0) goto LAB_00032182;
          var_15 = var_18->flags;
          var_19 = '\x02';
joined_r0x00032311:
          if ((var_15 & 0x103) == 1) {
            pcVar4 = var_18->name;
            format = (char *)var_2(0,"attempt to store non-zero value in section `%s\'",5);
            var_17(format,pcVar4);
          }
          nbytes = 0xffffffff;
          var_6 = var_5(&exp,&nbytes);
          if (var_6 != 0) {
LAB_000323f2:
                    /* WARNING: Subroutine does not return */
            var_16("../../gas/read.c",0x1447,"emit_leb128_expr");
          }
          if (var_19 == '\x02') goto LAB_000321a5;
          if (var_19 == '\x06') {
            pLVar9 = (type_4 *)exp.X_add_number;
            if ((((exp._17_1_ & 1) != 0) && ((int)(type_4 *)exp.X_add_number < 0x14)) &&
               (*(short *)(&DAT_000898fe + (int)(type_4 *)exp.X_add_number * 2) == -1)) {
              (&generic_bignum)[(int)(type_4 *)exp.X_add_number] = 0;
              pLVar9 = (type_4 *)((int)(type_4 *)exp.X_add_number + 1);
            }
            var_8 = var_20((char *)0x0,pLVar9,var_7,(int)sign_00);
            var_15 = var_8;
            pcVar4 = var_13(var_8);
            var_15 = var_20(pcVar4,pLVar9,var_7,var_15);
            if (var_8 < var_15) {
                    /* WARNING: Subroutine does not return */
              var_16("../../gas/read.c",0x146d,"emit_leb128_expr");
            }
          }
          else {
            symbol = var_21(&exp);
            var_22(rs_leb128,10,0,var_7,symbol,0,(char *)0x0);
          }
          goto LAB_00031fb8;
        }
LAB_0003236d:
        if (exp.X_add_number._4_4_ == 0 &&
            (type_4 *)exp.X_add_number == (type_4 *)0x0) goto LAB_00032279;
      }
      else {
        var_18 = *sign_00;
        if ((exp._16_1_ != '\x02') || (var_7 == 0)) goto LAB_00032225;
        var_23 = (type_1)~(type_1)(exp.X_add_number._4_4_ >> 0x18) >> 7;
        if (var_23 == (((type_1)exp._17_1_ >> 1 ^ 1) & 1)) {
          if (var_18 != (type_5)(var_4 + 0x180)) goto LAB_000322f9;
          goto LAB_0003236d;
        }
        var_24 = (type_1)exp._17_1_ >> 1 & 1;
        DAT_00089904 = exp.X_add_number._4_4_;
        _generic_bignum = (type_4 *)exp.X_add_number;
        local_4c = (type_4 *)0x4;
        if (var_23 != (var_24 ^ 1)) {
          local_4c = (type_4 *)0x5;
          DAT_00089908 = -(type_8)var_24;
        }
        exp._16_1_ = 6;
        exp.X_add_number._4_4_ = 0;
        exp.X_add_number._0_4_ = local_4c;
        if (var_18 != (type_5)(var_4 + 0x180)) goto LAB_000320cb;
      }
      pcVar4 = (char *)var_2(0,"attempt to store value in absolute section",5);
      var_17(pcVar4);
LAB_00032279:
      bVar10 = 0xfffffffe < (type_2)abs_section_offset;
      abs_section_offset._0_4_ = (type_2)abs_section_offset + 1;
      abs_section_offset._4_4_ = abs_section_offset._4_4_ + (type_2)bVar10;
    }
LAB_00031fb8:
    pcVar4 = var_25 + 1;
    if (*var_25 != ',') {
      var_26();
      return;
    }
  } while( true );
}


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

void MASKED(int param_1)

{
  int *piVar1;
  uint *puVar2;
  int *piVar3;
  int iVar4;
  char *pcVar5;
  byte bVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 uVar12;
  uint uVar13;
  undefined4 *puVar14;
  uint uVar15;
  int unaff_EBP;
  byte local_54;
  uint local_4c;
  undefined4 local_34;
  undefined1 local_30 [8];
  uint local_28;
  uint local_24;
  byte local_20;
  byte local_1f;
  
  FUN_0001fe10();
  piVar1 = (int *)(unaff_EBP + 0x57806);
  iVar4 = *(int *)(unaff_EBP + 0x4e072);
  puVar2 = (uint *)(unaff_EBP + 0x57a3a);
  do {
    FUN_000221d0(0,local_30,2);
    if (local_20 < 2) {
      uVar10 = dcgettext(0,unaff_EBP + 0x2dd36,5);
      FUN_0002bc80(uVar10);
      local_28 = 0;
      local_24 = 0;
      if (*piVar1 == iVar4 + 0x180) goto LAB_00032279;
LAB_00032182:
      local_34 = 0xffffffff;
      iVar9 = FUN_0001fe30(local_30,&local_34);
      if (iVar9 != 0) goto LAB_000323f2;
LAB_000321a5:
      uVar8 = local_24;
      uVar7 = local_28;
      if (param_1 == 0) {
        uVar11 = 0;
        uVar13 = local_28;
        uVar15 = local_24;
        do {
          uVar13 = uVar13 >> 7 | uVar15 << 0x19;
          uVar15 = uVar15 >> 7;
          uVar11 = uVar11 + 1;
        } while (uVar15 != 0 || uVar13 != 0);
      }
      else {
        uVar11 = FUN_0002d520();
      }
      uVar10 = FUN_00024b20(uVar11);
      uVar7 = FUN_00031e70(uVar10,uVar7,uVar8,param_1);
      if (uVar11 < uVar7) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be80(unaff_EBP + 0x2e36e,0x1459,unaff_EBP + 0x2ecde);
      }
    }
    else {
      if (local_20 == 6) {
        if ((int)(uint)(local_28 != 0) <= (int)-local_24) {
          uVar10 = dcgettext(0,unaff_EBP + 0x2bbae,5);
          FUN_0002bd60(uVar10);
          local_28 = 0;
          local_24 = 0;
          if (*piVar1 != iVar4 + 0x180) goto LAB_00032182;
          uVar7 = *puVar2;
          *puVar2 = *puVar2 + 1;
          *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7)
          ;
          goto LAB_00031fb8;
        }
        puVar14 = (undefined4 *)*piVar1;
LAB_00032225:
        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {
          if (local_20 == 2) goto LAB_000322f9;
LAB_000320cb:
          uVar7 = puVar14[5];
          bVar6 = local_20;
          goto joined_r0x00032311;
        }
        if (local_20 == 2) goto LAB_0003236d;
      }
      else if (local_20 == 5) {
        uVar10 = dcgettext(0,unaff_EBP + 0x2dd5a,5);
        FUN_0002bc80(uVar10);
        puVar14 = (undefined4 *)*piVar1;
        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) {
LAB_000322f9:
          if (local_24 == 0 && local_28 == 0) goto LAB_00032182;
          uVar7 = puVar14[5];
          bVar6 = 2;
joined_r0x00032311:
          if ((uVar7 & 0x103) == 1) {
            uVar10 = *puVar14;
            uVar12 = dcgettext(0,unaff_EBP + 0x2dd7e,5);
            FUN_0002bd60(uVar12,uVar10);
          }
          local_34 = 0xffffffff;
          iVar9 = FUN_0001fe30(local_30,&local_34);
          if (iVar9 != 0) {
LAB_000323f2:
                    /* WARNING: Subroutine does not return */
            FUN_0002be80(unaff_EBP + 0x2e36e,0x1447,unaff_EBP + 0x2ecde);
          }
          if (bVar6 == 2) goto LAB_000321a5;
          if (bVar6 == 6) {
            if ((((local_1f & 1) != 0) && ((int)local_28 < 0x14)) &&
               (*(short *)(&UNK_000579c8 + local_28 * 2 + unaff_EBP) == -1)) {
              *(undefined2 *)(&DAT_000579ca + local_28 * 2 + unaff_EBP) = 0;
            }
            uVar7 = FUN_0002d560();
            FUN_00024b20(uVar7);
            uVar8 = FUN_0002d560();
            if (uVar7 < uVar8) {
                    /* WARNING: Subroutine does not return */
              FUN_0002be80(unaff_EBP + 0x2e36e,0x146d,unaff_EBP + 0x2ecde);
            }
          }
          else {
            uVar10 = FUN_00021220(local_30);
            FUN_00024b60(0xb,10,0,param_1,uVar10,0,0,0);
          }
          goto LAB_00031fb8;
        }
LAB_0003236d:
        if (local_24 == 0 && local_28 == 0) goto LAB_00032279;
      }
      else {
        puVar14 = (undefined4 *)*piVar1;
        if ((local_20 != 2) || (param_1 == 0)) goto LAB_00032225;
        local_54 = (byte)~(byte)(local_24 >> 0x18) >> 7;
        if (local_54 == ((local_1f >> 1 ^ 1) & 1)) {
          if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000322f9;
          goto LAB_0003236d;
        }
        bVar6 = local_1f >> 1 & 1;
        *(uint *)(&DAT_000579ce + unaff_EBP) = local_24;
        *(uint *)(&DAT_000579ca + unaff_EBP) = local_28;
        local_4c = 4;
        if (local_54 != (bVar6 ^ 1)) {
          local_4c = 5;
          *(ushort *)(&DAT_000579d2 + unaff_EBP) = -(ushort)bVar6;
        }
        local_20 = 6;
        local_24 = 0;
        local_28 = local_4c;
        if (puVar14 != (undefined4 *)(iVar4 + 0x180)) goto LAB_000320cb;
      }
      uVar10 = dcgettext(0,unaff_EBP + 0x2ddd2,5);
      FUN_0002bd60(uVar10);
LAB_00032279:
      uVar7 = *puVar2;
      *puVar2 = *puVar2 + 1;
      *(int *)(unaff_EBP + 0x57a3e) = *(int *)(unaff_EBP + 0x57a3e) + (uint)(0xfffffffe < uVar7);
    }
LAB_00031fb8:
    piVar3 = (int *)(unaff_EBP + 0x57a42);
    pcVar5 = (char *)*piVar3;
    *piVar3 = (int)(pcVar5 + 1);
    if (*pcVar5 != ',') {
      *piVar3 = (int)pcVar5;
      FUN_0002e4e0();
      return;
    }
  } while( true );
}

