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

void dot_save(int dummy)

{
  int iVar1;
  char *pcVar2;
  unw_rec_list *puVar3;
  uint uVar4;
  ushort uVar5;
  uint uVar6;
  expressionS e1;
  expressionS e2;
  
  iVar1 = in_prologue("save");
  if (iVar1 == 0) {
    return;
  }
  iVar1 = parse_operand(&e1,0x2c);
  resolve_expression(&e1);
  if (iVar1 == 0x2c) {
    iVar1 = parse_operand(&e2,0x2c);
    resolve_expression(&e2);
    if (e1._16_1_ != '\x05') goto LAB_0004b007;
    uVar4 = (uint)e1.X_add_number;
    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))
    goto LAB_0004b03e;
LAB_0004b05e:
    uVar5 = (ushort)uVar6;
    if ((uint)e1.X_add_number == 0x128) {
      puVar3 = alloc_record(fpsr_when);
      add_unwind_entry(puVar3,iVar1);
      puVar3 = alloc_record(fpsr_gr);
      (puVar3->r).record.p.r.gr = uVar5;
      add_unwind_entry(puVar3,0x100);
      return;
    }
    if ((uint)e1.X_add_number < 0x129) {
      if ((uint)e1.X_add_number == 0x112) {
        puVar3 = alloc_record(bspstore_when);
        add_unwind_entry(puVar3,iVar1);
        puVar3 = alloc_record(bspstore_gr);
        (puVar3->r).record.p.r.gr = uVar5;
        add_unwind_entry(puVar3,0x100);
        return;
      }
      if ((uint)e1.X_add_number < 0x113) {
        if ((uint)e1.X_add_number == 0x111) {
          puVar3 = alloc_record(bsp_when);
          add_unwind_entry(puVar3,iVar1);
          puVar3 = alloc_record(bsp_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          add_unwind_entry(puVar3,0x100);
          return;
        }
      }
      else {
        if ((uint)e1.X_add_number == 0x113) {
          puVar3 = alloc_record(rnat_when);
          add_unwind_entry(puVar3,iVar1);
          puVar3 = alloc_record(rnat_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          add_unwind_entry(puVar3,0x100);
          return;
        }
        if ((uint)e1.X_add_number == 0x124) {
          puVar3 = alloc_record(unat_when);
          add_unwind_entry(puVar3,iVar1);
          puVar3 = alloc_record(unat_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          add_unwind_entry(puVar3,0x100);
          return;
        }
      }
    }
    else {
      if ((uint)e1.X_add_number == 0x248) {
        puVar3 = alloc_record(rp_when);
        add_unwind_entry(puVar3,iVar1);
        if ((unwind._36_2_ & 0x20) == 0) {
          puVar3 = alloc_record(rp_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          add_unwind_entry(puVar3,0x100);
          return;
        }
        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;
joined_r0x0004b35e:
        if (uVar6 == uVar4) {
          return;
        }
        goto LAB_0004b24d;
      }
      if ((uint)e1.X_add_number < 0x249) {
        if ((uint)e1.X_add_number == 0x140) {
          puVar3 = alloc_record(pfs_when);
          add_unwind_entry(puVar3,iVar1);
          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {
            puVar3 = alloc_record(pfs_gr);
            (puVar3->r).record.p.r.gr = uVar5;
            add_unwind_entry(puVar3,0x100);
            return;
          }
          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);
          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;
          goto joined_r0x0004b35e;
        }
        if ((uint)e1.X_add_number == 0x141) {
          puVar3 = alloc_record(lc_when);
          add_unwind_entry(puVar3,iVar1);
          puVar3 = alloc_record(lc_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          add_unwind_entry(puVar3,0x100);
          return;
        }
      }
      else {
        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;
        if ((uint)e1.X_add_number == 0x263) {
          puVar3 = alloc_record(priunat_when_gr);
          add_unwind_entry(puVar3,iVar1);
          puVar3 = alloc_record(priunat_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          add_unwind_entry(puVar3,0x100);
          return;
        }
      }
    }
    pcVar2 = (char *)dcgettext(0,"First operand to .save not a valid register",5);
    as_bad(pcVar2);
    add_unwind_entry((unw_rec_list *)0x0,iVar1);
  }
  else {
    e2._16_1_ = 1;
    uVar4 = (uint)e1.X_add_number;
    if (e1._16_1_ == '\x05') {
LAB_0004b03e:
      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);
      as_bad(pcVar2);
      uVar6 = 0;
      e1.X_add_number._0_4_ = uVar4;
      goto LAB_0004b05e;
    }
LAB_0004b007:
    pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);
    as_bad(pcVar2);
    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)) {
      uVar4 = 0x252;
      goto LAB_0004b03e;
    }
LAB_0004b200:
    puVar3 = alloc_record(preds_when);
    add_unwind_entry(puVar3,iVar1);
    if (((byte)unwind._36_1_ >> 2 & 1) == 0) {
      puVar3 = alloc_record(preds_gr);
      (puVar3->r).record.p.r.gr = (ushort)uVar6;
      add_unwind_entry(puVar3,0x100);
      return;
    }
    iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe);
    if (((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6) {
      return;
    }
LAB_0004b24d:
    pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);
    as_warn(pcVar2);
  }
  return;
}



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

void FUN_0004afa0(void)

{
  int iVar1;
  undefined4 uVar2;
  uint uVar3;
  undefined2 uVar4;
  uint uVar5;
  undefined1 local_44 [8];
  uint local_3c;
  char local_34;
  undefined1 local_30 [8];
  uint local_28;
  char local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x4afa9;
  iVar1 = FUN_00049f00();
  if (iVar1 == 0) {
    return;
  }
  iVar1 = FUN_00040d30();
  FUN_0001eec0(local_44);
  if (iVar1 == 0x2c) {
    FUN_00040d30();
    FUN_0001eec0(local_30);
    if (local_34 != '\x05') goto LAB_0004b007;
    uVar3 = local_3c;
    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;
LAB_0004b05e:
    uVar4 = (undefined2)uVar5;
    if (local_3c == 0x128) {
      FUN_00041760();
      FUN_00041030();
      iVar1 = FUN_00041760();
      *(undefined2 *)(iVar1 + 0x14) = uVar4;
      FUN_00041030();
      return;
    }
    if (local_3c < 0x129) {
      if (local_3c == 0x112) {
        FUN_00041760();
        FUN_00041030();
        iVar1 = FUN_00041760();
        *(undefined2 *)(iVar1 + 0x14) = uVar4;
        FUN_00041030();
        return;
      }
      if (local_3c < 0x113) {
        if (local_3c == 0x111) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
      }
      else {
        if (local_3c == 0x113) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
        if (local_3c == 0x124) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
      }
    }
    else {
      if (local_3c == 0x248) {
        FUN_00041760();
        FUN_00041030();
        if ((DAT_000876e4 & 0x20) == 0) {
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
        uVar3 = DAT_000876e4 >> 6 & 0x7f;
joined_r0x0004b35e:
        if (uVar5 == uVar3) {
          return;
        }
        goto LAB_0004b24d;
      }
      if (local_3c < 0x249) {
        if (local_3c == 0x140) {
          FUN_00041760();
          FUN_00041030();
          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {
            iVar1 = FUN_00041760();
            *(undefined2 *)(iVar1 + 0x14) = uVar4;
            FUN_00041030();
            return;
          }
          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);
          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;
          goto joined_r0x0004b35e;
        }
        if (local_3c == 0x141) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
      }
      else {
        if (local_3c == 0x252) goto LAB_0004b200;
        if (local_3c == 0x263) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
      }
    }
    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);
    FUN_00029550(uVar2);
    FUN_00041030();
  }
  else {
    local_20 = '\x01';
    uVar3 = local_3c;
    if (local_34 == '\x05') {
LAB_0004b03e:
      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);
      FUN_00029550(uVar2);
      uVar5 = 0;
      local_3c = uVar3;
      goto LAB_0004b05e;
    }
LAB_0004b007:
    uVar2 = dcgettext(0,"First operand to .save not a register",5);
    FUN_00029550(uVar2);
    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {
      uVar3 = 0x252;
      goto LAB_0004b03e;
    }
LAB_0004b200:
    FUN_00041760();
    FUN_00041030();
    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {
      iVar1 = FUN_00041760();
      *(short *)(iVar1 + 0x14) = (short)uVar5;
      FUN_00041030();
      return;
    }
    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);
    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {
      return;
    }
LAB_0004b24d:
    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);
    FUN_00029470(uVar2);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016030
ADD EBX,0x33057
SUB ESP,0x3c
LEA EAX,[EBX + 0xfffde5b5]
CALL 0x00049f00
TEST EAX,EAX
JNZ 0x0004afd0
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA ESI,[ESP + 0x8]
MOV EDX,0x2c
MOV EAX,ESI
CALL 0x00040d30
SUB ESP,0xc
PUSH ESI
MOV EDI,EAX
CALL 0x0001eec0
ADD ESP,0x10
CMP EDI,0x2c
JZ 0x0004b1b0
CMP byte ptr [ESP + 0x18],0x5
MOV ESI,dword ptr [ESP + 0x10]
MOV byte ptr [ESP + 0x2c],0x1
JZ 0x0004b03e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe4440]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
MOV dword ptr [ESP],EAX
CALL 0x00029550
MOV EBP,dword ptr [ESP + 0x34]
ADD ESP,0x10
CMP byte ptr [ESP + 0x2c],0x5
JNZ 0x0004b039
CMP EBP,0x7f
JBE 0x0004b200
MOV ESI,0x252
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe4468]
XOR EBP,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
MOV dword ptr [ESP],EAX
CALL 0x00029550
ADD ESP,0x10
CMP ESI,0x128
JZ 0x0004b270
JA 0x0004b0c8
CMP ESI,0x112
JZ 0x0004b2a0
JBE 0x0004b120
CMP ESI,0x113
JZ 0x0004b2d0
CMP ESI,0x124
JNZ 0x0004b300
MOV EAX,0x1c
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOV EAX,0x1d
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
CMP ESI,0x248
JZ 0x0004b330
JA 0x0004b160
CMP ESI,0x140
JZ 0x0004b370
CMP ESI,0x141
JNZ 0x0004b300
MOV EAX,0x20
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOV EAX,0x21
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
CMP ESI,0x111
JNZ 0x0004b300
MOV EAX,0x2d
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOV EAX,0x2e
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
CMP ESI,0x252
JZ 0x0004b200
CMP ESI,0x263
JNZ 0x0004b300
MOV EAX,0x28
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOV EAX,0x2a
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
LEA ESI,[ESP + 0x1c]
MOV EDX,0x2c
MOV EAX,ESI
CALL 0x00040d30
SUB ESP,0xc
PUSH ESI
MOV EDI,EAX
CALL 0x0001eec0
MOV ESI,dword ptr [ESP + 0x20]
ADD ESP,0x10
CMP byte ptr [ESP + 0x18],0x5
JNZ 0x0004b007
CMP byte ptr [ESP + 0x2c],0x5
MOV EBP,dword ptr [ESP + 0x24]
JNZ 0x0004b03e
CMP EBP,0x7f
JBE 0x0004b05e
JMP 0x0004b03e
MOV EAX,0x10
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOVZX EAX,byte ptr [EBX + 0x96e4]
SHR AL,0x2
AND EAX,0xf
TEST AL,0x1
JZ 0x0004b3c0
SUB ESP,0xc
AND EAX,0x3e
PUSH EAX
CALL 0x00059350
MOVZX EDX,word ptr [EBX + 0x96e4]
ADD ESP,0x10
SHR DX,0x6
AND EDX,0x7f
ADD EDX,EAX
CMP EDX,EBP
JZ 0x0004afc1
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe4498]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
MOV dword ptr [ESP],EAX
CALL 0x00029470
ADD ESP,0x10
JMP 0x0004afc1
MOV EAX,0x24
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOV EAX,0x25
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
MOV EAX,0x31
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOV EAX,0x32
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
MOV EAX,0x35
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOV EAX,0x36
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe44c8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
MOV dword ptr [ESP],EAX
CALL 0x00029550
MOV EDX,EDI
XOR EAX,EAX
CALL 0x00041030
ADD ESP,0x10
JMP 0x0004afc1
MOV EAX,0x7
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
TEST byte ptr [EBX + 0x96e4],0x20
JZ 0x0004b3e0
MOVZX EAX,word ptr [EBX + 0x96e4]
SHR AX,0x6
AND EAX,0x7f
CMP EBP,EAX
JZ 0x0004afc1
JMP 0x0004b24d
MOV EAX,0xc
CALL 0x00041760
MOV EDX,EDI
CALL 0x00041030
MOVZX EAX,byte ptr [EBX + 0x96e4]
SHR AL,0x2
AND EAX,0xf
TEST AL,0x4
JZ 0x0004b400
SUB ESP,0xc
AND EAX,0x38
PUSH EAX
CALL 0x00059350
MOVZX EDX,word ptr [EBX + 0x96e4]
ADD ESP,0x10
SHR DX,0x6
AND EDX,0x7f
ADD EDX,EAX
CMP EBP,EDX
JZ 0x0004afc1
JMP 0x0004b24d
MOV EAX,0x11
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
MOV EAX,0x8
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
MOV EAX,0xd
CALL 0x00041760
MOV EDX,0x100
MOV word ptr [EAX + 0x14],BP
CALL 0x00041030
JMP 0x0004afc1
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0004afa0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined2 uVar4;\n  uint uVar5;\n  undefined1 local_44 [8];\n  uint local_3c;\n  char local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4afa9;\n  iVar1 = FUN_00049f00();\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = FUN_00040d30();\n  FUN_0001eec0(local_44);\n  if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0004afa0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined2 uVar4;\n  uint uVar5;\n  undefined1 local_44 [8];\n  uint local_3c;\n  char local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4afa9;\n  iVar1 = FUN_00049f00();\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = FUN_00040d30();\n  FUN_0001eec0(local_44);\n  if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0004afa0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined2 uVar4;\n  uint uVar5;\n  undefined1 local_44 [8];\n  uint local_3c;\n  char local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4afa9;\n  iVar1 = FUN_00049f00();\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = FUN_00040d30();\n  FUN_0001eec0(local_44);\n  if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined2 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined1 local_44 [8];" type_identifier (array_declarator "local_44 [8]" identifier [ number_literal ]) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "char local_34;" primitive_type identifier ;) (declaration "undefined1 local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "char local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4afa9;" (assignment_expression "uStack_14 = 0x4afa9" identifier = number_literal) ;) (expression_statement "iVar1 = FUN_00049f00();" (assignment_expression "iVar1 = FUN_00049f00()" identifier = (call_expression "FUN_00049f00()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = FUN_00040d30();" (assignment_expression "iVar1 = FUN_00040d30()" identifier = (call_expression "FUN_00040d30()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001eec0(local_44);" (call_expression "FUN_0001eec0(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) (if_statement "if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" if (parenthesized_expression "(iVar1 == 0x2c)" ( (binary_expression "iVar1 == 0x2c" identifier == number_literal) )) (compound_statement "{\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }" { (expression_statement "FUN_00040d30();" (call_expression "FUN_00040d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001eec0(local_30);" (call_expression "FUN_0001eec0(local_30)" identifier (argument_list "(local_30)" ( identifier ))) ;) (if_statement "if (local_34 != '\x05') goto LAB_0004b007;" if (parenthesized_expression "(local_34 != '\x05')" ( (binary_expression "local_34 != '\x05'" identifier != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004b007;" goto statement_identifier ;)) (expression_statement "uVar3 = local_3c;" (assignment_expression "uVar3 = local_3c" identifier = identifier) ;) (if_statement "if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;" if (parenthesized_expression "((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28))" ( (binary_expression "(local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)" (parenthesized_expression "(local_20 != '\x05')" ( (binary_expression "local_20 != '\x05'" identifier != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar5 = local_28, 0x7f < local_28)" ( (comma_expression "uVar5 = local_28, 0x7f < local_28" (assignment_expression "uVar5 = local_28" identifier = identifier) , (binary_expression "0x7f < local_28" number_literal < identifier)) ))) )) (goto_statement "goto LAB_0004b03e;" goto statement_identifier ;)) (labeled_statement "LAB_0004b05e:\n    uVar4 = (undefined2)uVar5;" statement_identifier : (expression_statement "uVar4 = (undefined2)uVar5;" (assignment_expression "uVar4 = (undefined2)uVar5" identifier = (cast_expression "(undefined2)uVar5" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;)) (if_statement "if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }" if (parenthesized_expression "(local_3c == 0x128)" ( (binary_expression "local_3c == 0x128" identifier == number_literal) )) (compound_statement "{\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" if (parenthesized_expression "(local_3c < 0x129)" ( (binary_expression "local_3c < 0x129" identifier < number_literal) )) (compound_statement "{\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" { (if_statement "if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }" if (parenthesized_expression "(local_3c == 0x112)" ( (binary_expression "local_3c == 0x112" identifier == number_literal) )) (compound_statement "{\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" if (parenthesized_expression "(local_3c < 0x113)" ( (binary_expression "local_3c < 0x113" identifier < number_literal) )) (compound_statement "{\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" { (if_statement "if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x111)" ( (binary_expression "local_3c == 0x111" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" else (compound_statement "{\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" { (if_statement "if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x113)" ( (binary_expression "local_3c == 0x113" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x124)" ( (binary_expression "local_3c == 0x124" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }) (else_clause "else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" else (compound_statement "{\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" { (if_statement "if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }" if (parenthesized_expression "(local_3c == 0x248)" ( (binary_expression "local_3c == 0x248" identifier == number_literal) )) (compound_statement "{\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "((DAT_000876e4 & 0x20) == 0)" ( (binary_expression "(DAT_000876e4 & 0x20) == 0" (parenthesized_expression "(DAT_000876e4 & 0x20)" ( (binary_expression "DAT_000876e4 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar3 = DAT_000876e4 >> 6 & 0x7f;" (assignment_expression "uVar3 = DAT_000876e4 >> 6 & 0x7f" identifier = (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" identifier >> number_literal) & number_literal)) ;) (labeled_statement "joined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }" statement_identifier : (if_statement "if (uVar5 == uVar3) {\n          return;\n        }" if (parenthesized_expression "(uVar5 == uVar3)" ( (binary_expression "uVar5 == uVar3" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) (goto_statement "goto LAB_0004b24d;" goto statement_identifier ;) })) (if_statement "if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" if (parenthesized_expression "(local_3c < 0x249)" ( (binary_expression "local_3c < 0x249" identifier < number_literal) )) (compound_statement "{\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" { (if_statement "if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }" if (parenthesized_expression "(local_3c == 0x140)" ( (binary_expression "local_3c == 0x140" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }" if (parenthesized_expression "(((byte)DAT_000876e4 >> 2 & 4) == 0)" ( (binary_expression "((byte)DAT_000876e4 >> 2 & 4) == 0" (parenthesized_expression "((byte)DAT_000876e4 >> 2 & 4)" ( (binary_expression "(byte)DAT_000876e4 >> 2 & 4" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }" { (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);" (assignment_expression "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8)" identifier = (call_expression "FUN_00059350((byte)DAT_000876e4 >> 2 & 8)" identifier (argument_list "((byte)DAT_000876e4 >> 2 & 8)" ( (binary_expression "(byte)DAT_000876e4 >> 2 & 8" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) & number_literal) )))) ;) (expression_statement "uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;" (assignment_expression "uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1" identifier = (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1" (parenthesized_expression "(DAT_000876e4 >> 6 & 0x7f)" ( (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" identifier >> number_literal) & number_literal) )) + identifier)) ;) (goto_statement "goto joined_r0x0004b35e;" goto statement_identifier ;) })) (if_statement "if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x141)" ( (binary_expression "local_3c == 0x141" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" else (compound_statement "{\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" { (if_statement "if (local_3c == 0x252) goto LAB_0004b200;" if (parenthesized_expression "(local_3c == 0x252)" ( (binary_expression "local_3c == 0x252" identifier == number_literal) )) (goto_statement "goto LAB_0004b200;" goto statement_identifier ;)) (if_statement "if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x263)" ( (binary_expression "local_3c == 0x263" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }))) (expression_statement "uVar2 = dcgettext(0,"First operand to .save not a valid register",5);" (assignment_expression "uVar2 = dcgettext(0,"First operand to .save not a valid register",5)" identifier = (call_expression "dcgettext(0,"First operand to .save not a valid register",5)" identifier (argument_list "(0,"First operand to .save not a valid register",5)" ( number_literal , (string_literal ""First operand to .save not a valid register"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" else (compound_statement "{\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" { (expression_statement "local_20 = '\x01';" (assignment_expression "local_20 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar3 = local_3c;" (assignment_expression "uVar3 = local_3c" identifier = identifier) ;) (if_statement "if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }" if (parenthesized_expression "(local_34 == '\x05')" ( (binary_expression "local_34 == '\x05'" identifier == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }" { (labeled_statement "LAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);" (assignment_expression "uVar2 = dcgettext(0,"Second operand to .save not a valid register",5)" identifier = (call_expression "dcgettext(0,"Second operand to .save not a valid register",5)" identifier (argument_list "(0,"Second operand to .save not a valid register",5)" ( number_literal , (string_literal ""Second operand to .save not a valid register"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_3c = uVar3;" (assignment_expression "local_3c = uVar3" identifier = identifier) ;) (goto_statement "goto LAB_0004b05e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"First operand to .save not a register",5);" (assignment_expression "uVar2 = dcgettext(0,"First operand to .save not a register",5)" identifier = (call_expression "dcgettext(0,"First operand to .save not a register",5)" identifier (argument_list "(0,"First operand to .save not a register",5)" ( number_literal , (string_literal ""First operand to .save not a register"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (if_statement "if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }" if (parenthesized_expression "((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28))" ( (binary_expression "(local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)" (parenthesized_expression "(local_20 != '\x05')" ( (binary_expression "local_20 != '\x05'" identifier != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar5 = local_28, 0x7f < local_28)" ( (comma_expression "uVar5 = local_28, 0x7f < local_28" (assignment_expression "uVar5 = local_28" identifier = identifier) , (binary_expression "0x7f < local_28" number_literal < identifier)) ))) )) (compound_statement "{\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }" { (expression_statement "uVar3 = 0x252;" (assignment_expression "uVar3 = 0x252" identifier = number_literal) ;) (goto_statement "goto LAB_0004b03e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b200:\n    FUN_00041760();" statement_identifier : (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }" if (parenthesized_expression "(((byte)DAT_000876e4 >> 2 & 1) == 0)" ( (binary_expression "((byte)DAT_000876e4 >> 2 & 1) == 0" (parenthesized_expression "((byte)DAT_000876e4 >> 2 & 1)" ( (binary_expression "(byte)DAT_000876e4 >> 2 & 1" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }" { (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(short *)(iVar1 + 0x14) = (short)uVar5;" (assignment_expression "*(short *)(iVar1 + 0x14) = (short)uVar5" (pointer_expression "*(short *)(iVar1 + 0x14)" * (cast_expression "(short *)(iVar1 + 0x14)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = (cast_expression "(short)uVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);" (assignment_expression "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe)" identifier = (call_expression "FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe)" identifier (argument_list "((byte)DAT_000876e4 >> 2 & 0xe)" ( (binary_expression "(byte)DAT_000876e4 >> 2 & 0xe" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) & number_literal) )))) ;) (if_statement "if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }" if (parenthesized_expression "((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5)" ( (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5" (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1" (parenthesized_expression "(DAT_000876e4 >> 6 & 0x7f)" ( (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" identifier >> number_literal) & number_literal) )) + identifier) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);" (assignment_expression "uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5)" identifier = (call_expression "dcgettext(0,"Second operand of .save contradicts .prologue",5)" identifier (argument_list "(0,"Second operand of .save contradicts .prologue",5)" ( number_literal , (string_literal ""Second operand of .save contradicts .prologue"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_00029470(uVar2);" (call_expression "FUN_00029470(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid dot_save(int dummy)\n\n{\n  int iVar1;\n  char *pcVar2;\n  unw_rec_list *puVar3;\n  uint uVar4;\n  ushort uVar5;\n  uint uVar6;\n  expressionS e1;\n  expressionS e2;\n  \n  iVar1 = in_prologue("save");\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = parse_operand(&e1,0x2c);\n  resolve_expression(&e1);\n  if (iVar1 == 0x2c) {\n    iVar1 = parse_operand(&e2,0x2c);\n    resolve_expression(&e2);\n    if (e1._16_1_ != '\x05') goto LAB_0004b007;\n    uVar4 = (uint)e1.X_add_number;\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))\n    goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar5 = (ushort)uVar6;\n    if ((uint)e1.X_add_number == 0x128) {\n      puVar3 = alloc_record(fpsr_when);\n      add_unwind_entry(puVar3,iVar1);\n      puVar3 = alloc_record(fpsr_gr);\n      (puVar3->r).record.p.r.gr = uVar5;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    if ((uint)e1.X_add_number < 0x129) {\n      if ((uint)e1.X_add_number == 0x112) {\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }\n      if ((uint)e1.X_add_number < 0x113) {\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    else {\n      if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a valid register",5);\n    as_bad(pcVar2);\n    add_unwind_entry((unw_rec_list *)0x0,iVar1);\n  }\n  else {\n    e2._16_1_ = 1;\n    uVar4 = (uint)e1.X_add_number;\n    if (e1._16_1_ == '\x05') {\nLAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);\n      as_bad(pcVar2);\n      uVar6 = 0;\n      e1.X_add_number._0_4_ = uVar4;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);\n    as_bad(pcVar2);\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)) {\n      uVar4 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    puVar3 = alloc_record(preds_when);\n    add_unwind_entry(puVar3,iVar1);\n    if (((byte)unwind._36_1_ >> 2 & 1) == 0) {\n      puVar3 = alloc_record(preds_gr);\n      (puVar3->r).record.p.r.gr = (ushort)uVar6;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe);\n    if (((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6) {\n      return;\n    }\nLAB_0004b24d:\n    pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    as_warn(pcVar2);\n  }\n  return;\n}\n\n" comment (function_definition "void dot_save(int dummy)\n\n{\n  int iVar1;\n  char *pcVar2;\n  unw_rec_list *puVar3;\n  uint uVar4;\n  ushort uVar5;\n  uint uVar6;\n  expressionS e1;\n  expressionS e2;\n  \n  iVar1 = in_prologue("save");\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = parse_operand(&e1,0x2c);\n  resolve_expression(&e1);\n  if (iVar1 == 0x2c) {\n    iVar1 = parse_operand(&e2,0x2c);\n    resolve_expression(&e2);\n    if (e1._16_1_ != '\x05') goto LAB_0004b007;\n    uVar4 = (uint)e1.X_add_number;\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))\n    goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar5 = (ushort)uVar6;\n    if ((uint)e1.X_add_number == 0x128) {\n      puVar3 = alloc_record(fpsr_when);\n      add_unwind_entry(puVar3,iVar1);\n      puVar3 = alloc_record(fpsr_gr);\n      (puVar3->r).record.p.r.gr = uVar5;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    if ((uint)e1.X_add_number < 0x129) {\n      if ((uint)e1.X_add_number == 0x112) {\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }\n      if ((uint)e1.X_add_number < 0x113) {\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    else {\n      if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a valid register",5);\n    as_bad(pcVar2);\n    add_unwind_entry((unw_rec_list *)0x0,iVar1);\n  }\n  else {\n    e2._16_1_ = 1;\n    uVar4 = (uint)e1.X_add_number;\n    if (e1._16_1_ == '\x05') {\nLAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);\n      as_bad(pcVar2);\n      uVar6 = 0;\n      e1.X_add_number._0_4_ = uVar4;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);\n    as_bad(pcVar2);\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)) {\n      uVar4 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    puVar3 = alloc_record(preds_when);\n    add_unwind_entry(puVar3,iVar1);\n    if (((byte)unwind._36_1_ >> 2 & 1) == 0) {\n      puVar3 = alloc_record(preds_gr);\n      (puVar3->r).record.p.r.gr = (ushort)uVar6;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe);\n    if (((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6) {\n      return;\n    }\nLAB_0004b24d:\n    pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    as_warn(pcVar2);\n  }\n  return;\n}" primitive_type (function_declarator "dot_save(int dummy)" identifier (parameter_list "(int dummy)" ( (parameter_declaration "int dummy" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  unw_rec_list *puVar3;\n  uint uVar4;\n  ushort uVar5;\n  uint uVar6;\n  expressionS e1;\n  expressionS e2;\n  \n  iVar1 = in_prologue("save");\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = parse_operand(&e1,0x2c);\n  resolve_expression(&e1);\n  if (iVar1 == 0x2c) {\n    iVar1 = parse_operand(&e2,0x2c);\n    resolve_expression(&e2);\n    if (e1._16_1_ != '\x05') goto LAB_0004b007;\n    uVar4 = (uint)e1.X_add_number;\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))\n    goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar5 = (ushort)uVar6;\n    if ((uint)e1.X_add_number == 0x128) {\n      puVar3 = alloc_record(fpsr_when);\n      add_unwind_entry(puVar3,iVar1);\n      puVar3 = alloc_record(fpsr_gr);\n      (puVar3->r).record.p.r.gr = uVar5;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    if ((uint)e1.X_add_number < 0x129) {\n      if ((uint)e1.X_add_number == 0x112) {\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }\n      if ((uint)e1.X_add_number < 0x113) {\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    else {\n      if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a valid register",5);\n    as_bad(pcVar2);\n    add_unwind_entry((unw_rec_list *)0x0,iVar1);\n  }\n  else {\n    e2._16_1_ = 1;\n    uVar4 = (uint)e1.X_add_number;\n    if (e1._16_1_ == '\x05') {\nLAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);\n      as_bad(pcVar2);\n      uVar6 = 0;\n      e1.X_add_number._0_4_ = uVar4;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);\n    as_bad(pcVar2);\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)) {\n      uVar4 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    puVar3 = alloc_record(preds_when);\n    add_unwind_entry(puVar3,iVar1);\n    if (((byte)unwind._36_1_ >> 2 & 1) == 0) {\n      puVar3 = alloc_record(preds_gr);\n      (puVar3->r).record.p.r.gr = (ushort)uVar6;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe);\n    if (((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6) {\n      return;\n    }\nLAB_0004b24d:\n    pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    as_warn(pcVar2);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "unw_rec_list *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "expressionS e1;" type_identifier identifier ;) (declaration "expressionS e2;" type_identifier identifier ;) (expression_statement "iVar1 = in_prologue("save");" (assignment_expression "iVar1 = in_prologue("save")" identifier = (call_expression "in_prologue("save")" identifier (argument_list "("save")" ( (string_literal ""save"" " string_content ") )))) ;) (if_statement "if (iVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = parse_operand(&e1,0x2c);" (assignment_expression "iVar1 = parse_operand(&e1,0x2c)" identifier = (call_expression "parse_operand(&e1,0x2c)" identifier (argument_list "(&e1,0x2c)" ( (pointer_expression "&e1" & identifier) , number_literal )))) ;) (expression_statement "resolve_expression(&e1);" (call_expression "resolve_expression(&e1)" identifier (argument_list "(&e1)" ( (pointer_expression "&e1" & identifier) ))) ;) (if_statement "if (iVar1 == 0x2c) {\n    iVar1 = parse_operand(&e2,0x2c);\n    resolve_expression(&e2);\n    if (e1._16_1_ != '\x05') goto LAB_0004b007;\n    uVar4 = (uint)e1.X_add_number;\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))\n    goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar5 = (ushort)uVar6;\n    if ((uint)e1.X_add_number == 0x128) {\n      puVar3 = alloc_record(fpsr_when);\n      add_unwind_entry(puVar3,iVar1);\n      puVar3 = alloc_record(fpsr_gr);\n      (puVar3->r).record.p.r.gr = uVar5;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    if ((uint)e1.X_add_number < 0x129) {\n      if ((uint)e1.X_add_number == 0x112) {\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }\n      if ((uint)e1.X_add_number < 0x113) {\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    else {\n      if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a valid register",5);\n    as_bad(pcVar2);\n    add_unwind_entry((unw_rec_list *)0x0,iVar1);\n  }\n  else {\n    e2._16_1_ = 1;\n    uVar4 = (uint)e1.X_add_number;\n    if (e1._16_1_ == '\x05') {\nLAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);\n      as_bad(pcVar2);\n      uVar6 = 0;\n      e1.X_add_number._0_4_ = uVar4;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);\n    as_bad(pcVar2);\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)) {\n      uVar4 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    puVar3 = alloc_record(preds_when);\n    add_unwind_entry(puVar3,iVar1);\n    if (((byte)unwind._36_1_ >> 2 & 1) == 0) {\n      puVar3 = alloc_record(preds_gr);\n      (puVar3->r).record.p.r.gr = (ushort)uVar6;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe);\n    if (((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6) {\n      return;\n    }\nLAB_0004b24d:\n    pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    as_warn(pcVar2);\n  }" if (parenthesized_expression "(iVar1 == 0x2c)" ( (binary_expression "iVar1 == 0x2c" identifier == number_literal) )) (compound_statement "{\n    iVar1 = parse_operand(&e2,0x2c);\n    resolve_expression(&e2);\n    if (e1._16_1_ != '\x05') goto LAB_0004b007;\n    uVar4 = (uint)e1.X_add_number;\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))\n    goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar5 = (ushort)uVar6;\n    if ((uint)e1.X_add_number == 0x128) {\n      puVar3 = alloc_record(fpsr_when);\n      add_unwind_entry(puVar3,iVar1);\n      puVar3 = alloc_record(fpsr_gr);\n      (puVar3->r).record.p.r.gr = uVar5;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    if ((uint)e1.X_add_number < 0x129) {\n      if ((uint)e1.X_add_number == 0x112) {\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }\n      if ((uint)e1.X_add_number < 0x113) {\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    else {\n      if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a valid register",5);\n    as_bad(pcVar2);\n    add_unwind_entry((unw_rec_list *)0x0,iVar1);\n  }" { (expression_statement "iVar1 = parse_operand(&e2,0x2c);" (assignment_expression "iVar1 = parse_operand(&e2,0x2c)" identifier = (call_expression "parse_operand(&e2,0x2c)" identifier (argument_list "(&e2,0x2c)" ( (pointer_expression "&e2" & identifier) , number_literal )))) ;) (expression_statement "resolve_expression(&e2);" (call_expression "resolve_expression(&e2)" identifier (argument_list "(&e2)" ( (pointer_expression "&e2" & identifier) ))) ;) (if_statement "if (e1._16_1_ != '\x05') goto LAB_0004b007;" if (parenthesized_expression "(e1._16_1_ != '\x05')" ( (binary_expression "e1._16_1_ != '\x05'" (field_expression "e1._16_1_" identifier . field_identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004b007;" goto statement_identifier ;)) (expression_statement "uVar4 = (uint)e1.X_add_number;" (assignment_expression "uVar4 = (uint)e1.X_add_number" identifier = (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier))) ;) (if_statement "if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))\n    goto LAB_0004b03e;" if (parenthesized_expression "((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))" ( (binary_expression "(e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)" (parenthesized_expression "(e2._16_1_ != '\x05')" ( (binary_expression "e2._16_1_ != '\x05'" (field_expression "e2._16_1_" identifier . field_identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)" ( (comma_expression "uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number" (assignment_expression "uVar6 = (uint)e2.X_add_number" identifier = (cast_expression "(uint)e2.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e2.X_add_number" identifier . field_identifier))) , (binary_expression "0x7f < (uint)e2.X_add_number" number_literal < (cast_expression "(uint)e2.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e2.X_add_number" identifier . field_identifier)))) ))) )) (goto_statement "goto LAB_0004b03e;" goto statement_identifier ;)) (labeled_statement "LAB_0004b05e:\n    uVar5 = (ushort)uVar6;" statement_identifier : (expression_statement "uVar5 = (ushort)uVar6;" (assignment_expression "uVar5 = (ushort)uVar6" identifier = (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;)) (if_statement "if ((uint)e1.X_add_number == 0x128) {\n      puVar3 = alloc_record(fpsr_when);\n      add_unwind_entry(puVar3,iVar1);\n      puVar3 = alloc_record(fpsr_gr);\n      (puVar3->r).record.p.r.gr = uVar5;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }" if (parenthesized_expression "((uint)e1.X_add_number == 0x128)" ( (binary_expression "(uint)e1.X_add_number == 0x128" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n      puVar3 = alloc_record(fpsr_when);\n      add_unwind_entry(puVar3,iVar1);\n      puVar3 = alloc_record(fpsr_gr);\n      (puVar3->r).record.p.r.gr = uVar5;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }" { (expression_statement "puVar3 = alloc_record(fpsr_when);" (assignment_expression "puVar3 = alloc_record(fpsr_when)" identifier = (call_expression "alloc_record(fpsr_when)" identifier (argument_list "(fpsr_when)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (expression_statement "puVar3 = alloc_record(fpsr_gr);" (assignment_expression "puVar3 = alloc_record(fpsr_gr)" identifier = (call_expression "alloc_record(fpsr_gr)" identifier (argument_list "(fpsr_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((uint)e1.X_add_number < 0x129) {\n      if ((uint)e1.X_add_number == 0x112) {\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }\n      if ((uint)e1.X_add_number < 0x113) {\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }\n    else {\n      if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }" if (parenthesized_expression "((uint)e1.X_add_number < 0x129)" ( (binary_expression "(uint)e1.X_add_number < 0x129" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) < number_literal) )) (compound_statement "{\n      if ((uint)e1.X_add_number == 0x112) {\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }\n      if ((uint)e1.X_add_number < 0x113) {\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }" { (if_statement "if ((uint)e1.X_add_number == 0x112) {\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }" if (parenthesized_expression "((uint)e1.X_add_number == 0x112)" ( (binary_expression "(uint)e1.X_add_number == 0x112" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n        puVar3 = alloc_record(bspstore_when);\n        add_unwind_entry(puVar3,iVar1);\n        puVar3 = alloc_record(bspstore_gr);\n        (puVar3->r).record.p.r.gr = uVar5;\n        add_unwind_entry(puVar3,0x100);\n        return;\n      }" { (expression_statement "puVar3 = alloc_record(bspstore_when);" (assignment_expression "puVar3 = alloc_record(bspstore_when)" identifier = (call_expression "alloc_record(bspstore_when)" identifier (argument_list "(bspstore_when)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (expression_statement "puVar3 = alloc_record(bspstore_gr);" (assignment_expression "puVar3 = alloc_record(bspstore_gr)" identifier = (call_expression "alloc_record(bspstore_gr)" identifier (argument_list "(bspstore_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((uint)e1.X_add_number < 0x113) {\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }" if (parenthesized_expression "((uint)e1.X_add_number < 0x113)" ( (binary_expression "(uint)e1.X_add_number < 0x113" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) < number_literal) )) (compound_statement "{\n        if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }" { (if_statement "if ((uint)e1.X_add_number == 0x111) {\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" if (parenthesized_expression "((uint)e1.X_add_number == 0x111)" ( (binary_expression "(uint)e1.X_add_number == 0x111" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n          puVar3 = alloc_record(bsp_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(bsp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" { (expression_statement "puVar3 = alloc_record(bsp_when);" (assignment_expression "puVar3 = alloc_record(bsp_when)" identifier = (call_expression "alloc_record(bsp_when)" identifier (argument_list "(bsp_when)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (expression_statement "puVar3 = alloc_record(bsp_gr);" (assignment_expression "puVar3 = alloc_record(bsp_gr)" identifier = (call_expression "alloc_record(bsp_gr)" identifier (argument_list "(bsp_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }" else (compound_statement "{\n        if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }" { (if_statement "if ((uint)e1.X_add_number == 0x113) {\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" if (parenthesized_expression "((uint)e1.X_add_number == 0x113)" ( (binary_expression "(uint)e1.X_add_number == 0x113" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n          puVar3 = alloc_record(rnat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(rnat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" { (expression_statement "puVar3 = alloc_record(rnat_when);" (assignment_expression "puVar3 = alloc_record(rnat_when)" identifier = (call_expression "alloc_record(rnat_when)" identifier (argument_list "(rnat_when)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (expression_statement "puVar3 = alloc_record(rnat_gr);" (assignment_expression "puVar3 = alloc_record(rnat_gr)" identifier = (call_expression "alloc_record(rnat_gr)" identifier (argument_list "(rnat_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((uint)e1.X_add_number == 0x124) {\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" if (parenthesized_expression "((uint)e1.X_add_number == 0x124)" ( (binary_expression "(uint)e1.X_add_number == 0x124" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n          puVar3 = alloc_record(unat_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(unat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" { (expression_statement "puVar3 = alloc_record(unat_when);" (assignment_expression "puVar3 = alloc_record(unat_when)" identifier = (call_expression "alloc_record(unat_when)" identifier (argument_list "(unat_when)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (expression_statement "puVar3 = alloc_record(unat_gr);" (assignment_expression "puVar3 = alloc_record(unat_gr)" identifier = (call_expression "alloc_record(unat_gr)" identifier (argument_list "(unat_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) }))) }) (else_clause "else {\n      if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }" else (compound_statement "{\n      if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n    }" { (if_statement "if ((uint)e1.X_add_number == 0x248) {\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }" if (parenthesized_expression "((uint)e1.X_add_number == 0x248)" ( (binary_expression "(uint)e1.X_add_number == 0x248" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n        puVar3 = alloc_record(rp_when);\n        add_unwind_entry(puVar3,iVar1);\n        if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n        uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }" { (expression_statement "puVar3 = alloc_record(rp_when);" (assignment_expression "puVar3 = alloc_record(rp_when)" identifier = (call_expression "alloc_record(rp_when)" identifier (argument_list "(rp_when)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (if_statement "if ((unwind._36_2_ & 0x20) == 0) {\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" if (parenthesized_expression "((unwind._36_2_ & 0x20) == 0)" ( (binary_expression "(unwind._36_2_ & 0x20) == 0" (parenthesized_expression "(unwind._36_2_ & 0x20)" ( (binary_expression "unwind._36_2_ & 0x20" (field_expression "unwind._36_2_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          puVar3 = alloc_record(rp_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" { (expression_statement "puVar3 = alloc_record(rp_gr);" (assignment_expression "puVar3 = alloc_record(rp_gr)" identifier = (call_expression "alloc_record(rp_gr)" identifier (argument_list "(rp_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f;" (assignment_expression "uVar4 = (ushort)unwind._36_2_ >> 6 & 0x7f" identifier = (binary_expression "(ushort)unwind._36_2_ >> 6 & 0x7f" (binary_expression "(ushort)unwind._36_2_ >> 6" (cast_expression "(ushort)unwind._36_2_" ( (type_descriptor "ushort" type_identifier) ) (field_expression "unwind._36_2_" identifier . field_identifier)) >> number_literal) & number_literal)) ;) (labeled_statement "joined_r0x0004b35e:\n        if (uVar6 == uVar4) {\n          return;\n        }" statement_identifier : (if_statement "if (uVar6 == uVar4) {\n          return;\n        }" if (parenthesized_expression "(uVar6 == uVar4)" ( (binary_expression "uVar6 == uVar4" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) (goto_statement "goto LAB_0004b24d;" goto statement_identifier ;) })) (if_statement "if ((uint)e1.X_add_number < 0x249) {\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }\n      else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }" if (parenthesized_expression "((uint)e1.X_add_number < 0x249)" ( (binary_expression "(uint)e1.X_add_number < 0x249" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) < number_literal) )) (compound_statement "{\n        if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }" { (if_statement "if ((uint)e1.X_add_number == 0x140) {\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }" if (parenthesized_expression "((uint)e1.X_add_number == 0x140)" ( (binary_expression "(uint)e1.X_add_number == 0x140" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n          puVar3 = alloc_record(pfs_when);\n          add_unwind_entry(puVar3,iVar1);\n          if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }\n          iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);\n          uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }" { (expression_statement "puVar3 = alloc_record(pfs_when);" (assignment_expression "puVar3 = alloc_record(pfs_when)" identifier = (call_expression "alloc_record(pfs_when)" identifier (argument_list "(pfs_when)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (if_statement "if (((byte)unwind._36_1_ >> 2 & 4) == 0) {\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }" if (parenthesized_expression "(((byte)unwind._36_1_ >> 2 & 4) == 0)" ( (binary_expression "((byte)unwind._36_1_ >> 2 & 4) == 0" (parenthesized_expression "((byte)unwind._36_1_ >> 2 & 4)" ( (binary_expression "(byte)unwind._36_1_ >> 2 & 4" (binary_expression "(byte)unwind._36_1_ >> 2" (cast_expression "(byte)unwind._36_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "unwind._36_1_" identifier . field_identifier)) >> number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n            puVar3 = alloc_record(pfs_gr);\n            (puVar3->r).record.p.r.gr = uVar5;\n            add_unwind_entry(puVar3,0x100);\n            return;\n          }" { (expression_statement "puVar3 = alloc_record(pfs_gr);" (assignment_expression "puVar3 = alloc_record(pfs_gr)" identifier = (call_expression "alloc_record(pfs_gr)" identifier (argument_list "(pfs_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8);" (assignment_expression "iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 8)" identifier = (call_expression "__popcountsi2((byte)unwind._36_1_ >> 2 & 8)" identifier (argument_list "((byte)unwind._36_1_ >> 2 & 8)" ( (binary_expression "(byte)unwind._36_1_ >> 2 & 8" (binary_expression "(byte)unwind._36_1_ >> 2" (cast_expression "(byte)unwind._36_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "unwind._36_1_" identifier . field_identifier)) >> number_literal) & number_literal) )))) ;) (expression_statement "uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1;" (assignment_expression "uVar4 = ((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1" identifier = (binary_expression "((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1" (parenthesized_expression "((ushort)unwind._36_2_ >> 6 & 0x7f)" ( (binary_expression "(ushort)unwind._36_2_ >> 6 & 0x7f" (binary_expression "(ushort)unwind._36_2_ >> 6" (cast_expression "(ushort)unwind._36_2_" ( (type_descriptor "ushort" type_identifier) ) (field_expression "unwind._36_2_" identifier . field_identifier)) >> number_literal) & number_literal) )) + identifier)) ;) (goto_statement "goto joined_r0x0004b35e;" goto statement_identifier ;) })) (if_statement "if ((uint)e1.X_add_number == 0x141) {\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" if (parenthesized_expression "((uint)e1.X_add_number == 0x141)" ( (binary_expression "(uint)e1.X_add_number == 0x141" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n          puVar3 = alloc_record(lc_when);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(lc_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" { (expression_statement "puVar3 = alloc_record(lc_when);" (assignment_expression "puVar3 = alloc_record(lc_when)" identifier = (call_expression "alloc_record(lc_when)" identifier (argument_list "(lc_when)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (expression_statement "puVar3 = alloc_record(lc_gr);" (assignment_expression "puVar3 = alloc_record(lc_gr)" identifier = (call_expression "alloc_record(lc_gr)" identifier (argument_list "(lc_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }" else (compound_statement "{\n        if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;\n        if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }\n      }" { (if_statement "if ((uint)e1.X_add_number == 0x252) goto LAB_0004b200;" if (parenthesized_expression "((uint)e1.X_add_number == 0x252)" ( (binary_expression "(uint)e1.X_add_number == 0x252" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (goto_statement "goto LAB_0004b200;" goto statement_identifier ;)) (if_statement "if ((uint)e1.X_add_number == 0x263) {\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" if (parenthesized_expression "((uint)e1.X_add_number == 0x263)" ( (binary_expression "(uint)e1.X_add_number == 0x263" (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n          puVar3 = alloc_record(priunat_when_gr);\n          add_unwind_entry(puVar3,iVar1);\n          puVar3 = alloc_record(priunat_gr);\n          (puVar3->r).record.p.r.gr = uVar5;\n          add_unwind_entry(puVar3,0x100);\n          return;\n        }" { (expression_statement "puVar3 = alloc_record(priunat_when_gr);" (assignment_expression "puVar3 = alloc_record(priunat_when_gr)" identifier = (call_expression "alloc_record(priunat_when_gr)" identifier (argument_list "(priunat_when_gr)" ( identifier )))) ;) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (expression_statement "puVar3 = alloc_record(priunat_gr);" (assignment_expression "puVar3 = alloc_record(priunat_gr)" identifier = (call_expression "alloc_record(priunat_gr)" identifier (argument_list "(priunat_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = uVar5;" (assignment_expression "(puVar3->r).record.p.r.gr = uVar5" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) }))) }))) (expression_statement "pcVar2 = (char *)dcgettext(0,"First operand to .save not a valid register",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"First operand to .save not a valid register",5)" identifier = (cast_expression "(char *)dcgettext(0,"First operand to .save not a valid register",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"First operand to .save not a valid register",5)" identifier (argument_list "(0,"First operand to .save not a valid register",5)" ( number_literal , (string_literal ""First operand to .save not a valid register"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar2);" (call_expression "as_bad(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (expression_statement "add_unwind_entry((unw_rec_list *)0x0,iVar1);" (call_expression "add_unwind_entry((unw_rec_list *)0x0,iVar1)" identifier (argument_list "((unw_rec_list *)0x0,iVar1)" ( (cast_expression "(unw_rec_list *)0x0" ( (type_descriptor "unw_rec_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) }) (else_clause "else {\n    e2._16_1_ = 1;\n    uVar4 = (uint)e1.X_add_number;\n    if (e1._16_1_ == '\x05') {\nLAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);\n      as_bad(pcVar2);\n      uVar6 = 0;\n      e1.X_add_number._0_4_ = uVar4;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);\n    as_bad(pcVar2);\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)) {\n      uVar4 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    puVar3 = alloc_record(preds_when);\n    add_unwind_entry(puVar3,iVar1);\n    if (((byte)unwind._36_1_ >> 2 & 1) == 0) {\n      puVar3 = alloc_record(preds_gr);\n      (puVar3->r).record.p.r.gr = (ushort)uVar6;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe);\n    if (((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6) {\n      return;\n    }\nLAB_0004b24d:\n    pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    as_warn(pcVar2);\n  }" else (compound_statement "{\n    e2._16_1_ = 1;\n    uVar4 = (uint)e1.X_add_number;\n    if (e1._16_1_ == '\x05') {\nLAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);\n      as_bad(pcVar2);\n      uVar6 = 0;\n      e1.X_add_number._0_4_ = uVar4;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);\n    as_bad(pcVar2);\n    if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)) {\n      uVar4 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    puVar3 = alloc_record(preds_when);\n    add_unwind_entry(puVar3,iVar1);\n    if (((byte)unwind._36_1_ >> 2 & 1) == 0) {\n      puVar3 = alloc_record(preds_gr);\n      (puVar3->r).record.p.r.gr = (ushort)uVar6;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }\n    iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe);\n    if (((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6) {\n      return;\n    }\nLAB_0004b24d:\n    pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    as_warn(pcVar2);\n  }" { (expression_statement "e2._16_1_ = 1;" (assignment_expression "e2._16_1_ = 1" (field_expression "e2._16_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar4 = (uint)e1.X_add_number;" (assignment_expression "uVar4 = (uint)e1.X_add_number" identifier = (cast_expression "(uint)e1.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e1.X_add_number" identifier . field_identifier))) ;) (if_statement "if (e1._16_1_ == '\x05') {\nLAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);\n      as_bad(pcVar2);\n      uVar6 = 0;\n      e1.X_add_number._0_4_ = uVar4;\n      goto LAB_0004b05e;\n    }" if (parenthesized_expression "(e1._16_1_ == '\x05')" ( (binary_expression "e1._16_1_ == '\x05'" (field_expression "e1._16_1_" identifier . field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);\n      as_bad(pcVar2);\n      uVar6 = 0;\n      e1.X_add_number._0_4_ = uVar4;\n      goto LAB_0004b05e;\n    }" { (labeled_statement "LAB_0004b03e:\n      pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);" statement_identifier : (expression_statement "pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"Second operand to .save not a valid register",5)" identifier = (cast_expression "(char *)dcgettext(0,"Second operand to .save not a valid register",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Second operand to .save not a valid register",5)" identifier (argument_list "(0,"Second operand to .save not a valid register",5)" ( number_literal , (string_literal ""Second operand to .save not a valid register"" " string_content ") , number_literal ))))) ;)) (expression_statement "as_bad(pcVar2);" (call_expression "as_bad(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "e1.X_add_number._0_4_ = uVar4;" (assignment_expression "e1.X_add_number._0_4_ = uVar4" (field_expression "e1.X_add_number._0_4_" (field_expression "e1.X_add_number" identifier . field_identifier) . field_identifier) = identifier) ;) (goto_statement "goto LAB_0004b05e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b007:\n    pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);" statement_identifier : (expression_statement "pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"First operand to .save not a register",5)" identifier = (cast_expression "(char *)dcgettext(0,"First operand to .save not a register",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"First operand to .save not a register",5)" identifier (argument_list "(0,"First operand to .save not a register",5)" ( number_literal , (string_literal ""First operand to .save not a register"" " string_content ") , number_literal ))))) ;)) (expression_statement "as_bad(pcVar2);" (call_expression "as_bad(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if ((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)) {\n      uVar4 = 0x252;\n      goto LAB_0004b03e;\n    }" if (parenthesized_expression "((e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number))" ( (binary_expression "(e2._16_1_ != '\x05') || (uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)" (parenthesized_expression "(e2._16_1_ != '\x05')" ( (binary_expression "e2._16_1_ != '\x05'" (field_expression "e2._16_1_" identifier . field_identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number)" ( (comma_expression "uVar6 = (uint)e2.X_add_number, 0x7f < (uint)e2.X_add_number" (assignment_expression "uVar6 = (uint)e2.X_add_number" identifier = (cast_expression "(uint)e2.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e2.X_add_number" identifier . field_identifier))) , (binary_expression "0x7f < (uint)e2.X_add_number" number_literal < (cast_expression "(uint)e2.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e2.X_add_number" identifier . field_identifier)))) ))) )) (compound_statement "{\n      uVar4 = 0x252;\n      goto LAB_0004b03e;\n    }" { (expression_statement "uVar4 = 0x252;" (assignment_expression "uVar4 = 0x252" identifier = number_literal) ;) (goto_statement "goto LAB_0004b03e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b200:\n    puVar3 = alloc_record(preds_when);" statement_identifier : (expression_statement "puVar3 = alloc_record(preds_when);" (assignment_expression "puVar3 = alloc_record(preds_when)" identifier = (call_expression "alloc_record(preds_when)" identifier (argument_list "(preds_when)" ( identifier )))) ;)) (expression_statement "add_unwind_entry(puVar3,iVar1);" (call_expression "add_unwind_entry(puVar3,iVar1)" identifier (argument_list "(puVar3,iVar1)" ( identifier , identifier ))) ;) (if_statement "if (((byte)unwind._36_1_ >> 2 & 1) == 0) {\n      puVar3 = alloc_record(preds_gr);\n      (puVar3->r).record.p.r.gr = (ushort)uVar6;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }" if (parenthesized_expression "(((byte)unwind._36_1_ >> 2 & 1) == 0)" ( (binary_expression "((byte)unwind._36_1_ >> 2 & 1) == 0" (parenthesized_expression "((byte)unwind._36_1_ >> 2 & 1)" ( (binary_expression "(byte)unwind._36_1_ >> 2 & 1" (binary_expression "(byte)unwind._36_1_ >> 2" (cast_expression "(byte)unwind._36_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "unwind._36_1_" identifier . field_identifier)) >> number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar3 = alloc_record(preds_gr);\n      (puVar3->r).record.p.r.gr = (ushort)uVar6;\n      add_unwind_entry(puVar3,0x100);\n      return;\n    }" { (expression_statement "puVar3 = alloc_record(preds_gr);" (assignment_expression "puVar3 = alloc_record(preds_gr)" identifier = (call_expression "alloc_record(preds_gr)" identifier (argument_list "(preds_gr)" ( identifier )))) ;) (expression_statement "(puVar3->r).record.p.r.gr = (ushort)uVar6;" (assignment_expression "(puVar3->r).record.p.r.gr = (ushort)uVar6" (field_expression "(puVar3->r).record.p.r.gr" (field_expression "(puVar3->r).record.p.r" (field_expression "(puVar3->r).record.p" (field_expression "(puVar3->r).record" (parenthesized_expression "(puVar3->r)" ( (field_expression "puVar3->r" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "add_unwind_entry(puVar3,0x100);" (call_expression "add_unwind_entry(puVar3,0x100)" identifier (argument_list "(puVar3,0x100)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe);" (assignment_expression "iVar1 = __popcountsi2((byte)unwind._36_1_ >> 2 & 0xe)" identifier = (call_expression "__popcountsi2((byte)unwind._36_1_ >> 2 & 0xe)" identifier (argument_list "((byte)unwind._36_1_ >> 2 & 0xe)" ( (binary_expression "(byte)unwind._36_1_ >> 2 & 0xe" (binary_expression "(byte)unwind._36_1_ >> 2" (cast_expression "(byte)unwind._36_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "unwind._36_1_" identifier . field_identifier)) >> number_literal) & number_literal) )))) ;) (if_statement "if (((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6) {\n      return;\n    }" if (parenthesized_expression "(((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6)" ( (binary_expression "((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1 == uVar6" (binary_expression "((ushort)unwind._36_2_ >> 6 & 0x7f) + iVar1" (parenthesized_expression "((ushort)unwind._36_2_ >> 6 & 0x7f)" ( (binary_expression "(ushort)unwind._36_2_ >> 6 & 0x7f" (binary_expression "(ushort)unwind._36_2_ >> 6" (cast_expression "(ushort)unwind._36_2_" ( (type_descriptor "ushort" type_identifier) ) (field_expression "unwind._36_2_" identifier . field_identifier)) >> number_literal) & number_literal) )) + identifier) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0004b24d:\n    pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);" statement_identifier : (expression_statement "pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"Second operand of .save contradicts .prologue",5)" identifier = (cast_expression "(char *)dcgettext(0,"Second operand of .save contradicts .prologue",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Second operand of .save contradicts .prologue",5)" identifier (argument_list "(0,"Second operand of .save contradicts .prologue",5)" ( number_literal , (string_literal ""Second operand of .save contradicts .prologue"" " string_content ") , number_literal ))))) ;)) (expression_statement "as_warn(pcVar2);" (call_expression "as_warn(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0004afa0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined2 uVar4;\n  uint uVar5;\n  undefined1 local_44 [8];\n  uint local_3c;\n  char local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4afa9;\n  iVar1 = FUN_00049f00();\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = FUN_00040d30();\n  FUN_0001eec0(local_44);\n  if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0004afa0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined2 uVar4;\n  uint uVar5;\n  undefined1 local_44 [8];\n  uint local_3c;\n  char local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4afa9;\n  iVar1 = FUN_00049f00();\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = FUN_00040d30();\n  FUN_0001eec0(local_44);\n  if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0004afa0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined2 uVar4;\n  uint uVar5;\n  undefined1 local_44 [8];\n  uint local_3c;\n  char local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4afa9;\n  iVar1 = FUN_00049f00();\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = FUN_00040d30();\n  FUN_0001eec0(local_44);\n  if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined2 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined1 local_44 [8];" type_identifier (array_declarator "local_44 [8]" identifier [ number_literal ]) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "char local_34;" primitive_type identifier ;) (declaration "undefined1 local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "char local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4afa9;" (assignment_expression "uStack_14 = 0x4afa9" identifier = number_literal) ;) (expression_statement "iVar1 = FUN_00049f00();" (assignment_expression "iVar1 = FUN_00049f00()" identifier = (call_expression "FUN_00049f00()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = FUN_00040d30();" (assignment_expression "iVar1 = FUN_00040d30()" identifier = (call_expression "FUN_00040d30()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001eec0(local_44);" (call_expression "FUN_0001eec0(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) (if_statement "if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" if (parenthesized_expression "(iVar1 == 0x2c)" ( (binary_expression "iVar1 == 0x2c" identifier == number_literal) )) (compound_statement "{\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }" { (expression_statement "FUN_00040d30();" (call_expression "FUN_00040d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001eec0(local_30);" (call_expression "FUN_0001eec0(local_30)" identifier (argument_list "(local_30)" ( identifier ))) ;) (if_statement "if (local_34 != '\x05') goto LAB_0004b007;" if (parenthesized_expression "(local_34 != '\x05')" ( (binary_expression "local_34 != '\x05'" identifier != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004b007;" goto statement_identifier ;)) (expression_statement "uVar3 = local_3c;" (assignment_expression "uVar3 = local_3c" identifier = identifier) ;) (if_statement "if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;" if (parenthesized_expression "((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28))" ( (binary_expression "(local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)" (parenthesized_expression "(local_20 != '\x05')" ( (binary_expression "local_20 != '\x05'" identifier != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar5 = local_28, 0x7f < local_28)" ( (comma_expression "uVar5 = local_28, 0x7f < local_28" (assignment_expression "uVar5 = local_28" identifier = identifier) , (binary_expression "0x7f < local_28" number_literal < identifier)) ))) )) (goto_statement "goto LAB_0004b03e;" goto statement_identifier ;)) (labeled_statement "LAB_0004b05e:\n    uVar4 = (undefined2)uVar5;" statement_identifier : (expression_statement "uVar4 = (undefined2)uVar5;" (assignment_expression "uVar4 = (undefined2)uVar5" identifier = (cast_expression "(undefined2)uVar5" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;)) (if_statement "if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }" if (parenthesized_expression "(local_3c == 0x128)" ( (binary_expression "local_3c == 0x128" identifier == number_literal) )) (compound_statement "{\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" if (parenthesized_expression "(local_3c < 0x129)" ( (binary_expression "local_3c < 0x129" identifier < number_literal) )) (compound_statement "{\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" { (if_statement "if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }" if (parenthesized_expression "(local_3c == 0x112)" ( (binary_expression "local_3c == 0x112" identifier == number_literal) )) (compound_statement "{\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" if (parenthesized_expression "(local_3c < 0x113)" ( (binary_expression "local_3c < 0x113" identifier < number_literal) )) (compound_statement "{\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" { (if_statement "if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x111)" ( (binary_expression "local_3c == 0x111" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" else (compound_statement "{\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" { (if_statement "if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x113)" ( (binary_expression "local_3c == 0x113" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x124)" ( (binary_expression "local_3c == 0x124" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }) (else_clause "else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" else (compound_statement "{\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" { (if_statement "if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }" if (parenthesized_expression "(local_3c == 0x248)" ( (binary_expression "local_3c == 0x248" identifier == number_literal) )) (compound_statement "{\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "((DAT_000876e4 & 0x20) == 0)" ( (binary_expression "(DAT_000876e4 & 0x20) == 0" (parenthesized_expression "(DAT_000876e4 & 0x20)" ( (binary_expression "DAT_000876e4 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar3 = DAT_000876e4 >> 6 & 0x7f;" (assignment_expression "uVar3 = DAT_000876e4 >> 6 & 0x7f" identifier = (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" identifier >> number_literal) & number_literal)) ;) (labeled_statement "joined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }" statement_identifier : (if_statement "if (uVar5 == uVar3) {\n          return;\n        }" if (parenthesized_expression "(uVar5 == uVar3)" ( (binary_expression "uVar5 == uVar3" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) (goto_statement "goto LAB_0004b24d;" goto statement_identifier ;) })) (if_statement "if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" if (parenthesized_expression "(local_3c < 0x249)" ( (binary_expression "local_3c < 0x249" identifier < number_literal) )) (compound_statement "{\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" { (if_statement "if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }" if (parenthesized_expression "(local_3c == 0x140)" ( (binary_expression "local_3c == 0x140" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }" if (parenthesized_expression "(((byte)DAT_000876e4 >> 2 & 4) == 0)" ( (binary_expression "((byte)DAT_000876e4 >> 2 & 4) == 0" (parenthesized_expression "((byte)DAT_000876e4 >> 2 & 4)" ( (binary_expression "(byte)DAT_000876e4 >> 2 & 4" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }" { (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);" (assignment_expression "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8)" identifier = (call_expression "FUN_00059350((byte)DAT_000876e4 >> 2 & 8)" identifier (argument_list "((byte)DAT_000876e4 >> 2 & 8)" ( (binary_expression "(byte)DAT_000876e4 >> 2 & 8" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) & number_literal) )))) ;) (expression_statement "uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;" (assignment_expression "uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1" identifier = (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1" (parenthesized_expression "(DAT_000876e4 >> 6 & 0x7f)" ( (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" identifier >> number_literal) & number_literal) )) + identifier)) ;) (goto_statement "goto joined_r0x0004b35e;" goto statement_identifier ;) })) (if_statement "if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x141)" ( (binary_expression "local_3c == 0x141" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" else (compound_statement "{\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" { (if_statement "if (local_3c == 0x252) goto LAB_0004b200;" if (parenthesized_expression "(local_3c == 0x252)" ( (binary_expression "local_3c == 0x252" identifier == number_literal) )) (goto_statement "goto LAB_0004b200;" goto statement_identifier ;)) (if_statement "if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" if (parenthesized_expression "(local_3c == 0x263)" ( (binary_expression "local_3c == 0x263" identifier == number_literal) )) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" { (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" * (cast_expression "(undefined2 *)(iVar1 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }))) }))) (expression_statement "uVar2 = dcgettext(0,"First operand to .save not a valid register",5);" (assignment_expression "uVar2 = dcgettext(0,"First operand to .save not a valid register",5)" identifier = (call_expression "dcgettext(0,"First operand to .save not a valid register",5)" identifier (argument_list "(0,"First operand to .save not a valid register",5)" ( number_literal , (string_literal ""First operand to .save not a valid register"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" else (compound_statement "{\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" { (expression_statement "local_20 = '\x01';" (assignment_expression "local_20 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar3 = local_3c;" (assignment_expression "uVar3 = local_3c" identifier = identifier) ;) (if_statement "if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }" if (parenthesized_expression "(local_34 == '\x05')" ( (binary_expression "local_34 == '\x05'" identifier == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }" { (labeled_statement "LAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);" (assignment_expression "uVar2 = dcgettext(0,"Second operand to .save not a valid register",5)" identifier = (call_expression "dcgettext(0,"Second operand to .save not a valid register",5)" identifier (argument_list "(0,"Second operand to .save not a valid register",5)" ( number_literal , (string_literal ""Second operand to .save not a valid register"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_3c = uVar3;" (assignment_expression "local_3c = uVar3" identifier = identifier) ;) (goto_statement "goto LAB_0004b05e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"First operand to .save not a register",5);" (assignment_expression "uVar2 = dcgettext(0,"First operand to .save not a register",5)" identifier = (call_expression "dcgettext(0,"First operand to .save not a register",5)" identifier (argument_list "(0,"First operand to .save not a register",5)" ( number_literal , (string_literal ""First operand to .save not a register"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (if_statement "if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }" if (parenthesized_expression "((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28))" ( (binary_expression "(local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)" (parenthesized_expression "(local_20 != '\x05')" ( (binary_expression "local_20 != '\x05'" identifier != (char_literal "'\x05'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar5 = local_28, 0x7f < local_28)" ( (comma_expression "uVar5 = local_28, 0x7f < local_28" (assignment_expression "uVar5 = local_28" identifier = identifier) , (binary_expression "0x7f < local_28" number_literal < identifier)) ))) )) (compound_statement "{\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }" { (expression_statement "uVar3 = 0x252;" (assignment_expression "uVar3 = 0x252" identifier = number_literal) ;) (goto_statement "goto LAB_0004b03e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b200:\n    FUN_00041760();" statement_identifier : (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }" if (parenthesized_expression "(((byte)DAT_000876e4 >> 2 & 1) == 0)" ( (binary_expression "((byte)DAT_000876e4 >> 2 & 1) == 0" (parenthesized_expression "((byte)DAT_000876e4 >> 2 & 1)" ( (binary_expression "(byte)DAT_000876e4 >> 2 & 1" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }" { (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" identifier = (call_expression "FUN_00041760()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(short *)(iVar1 + 0x14) = (short)uVar5;" (assignment_expression "*(short *)(iVar1 + 0x14) = (short)uVar5" (pointer_expression "*(short *)(iVar1 + 0x14)" * (cast_expression "(short *)(iVar1 + 0x14)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = (cast_expression "(short)uVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);" (assignment_expression "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe)" identifier = (call_expression "FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe)" identifier (argument_list "((byte)DAT_000876e4 >> 2 & 0xe)" ( (binary_expression "(byte)DAT_000876e4 >> 2 & 0xe" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) & number_literal) )))) ;) (if_statement "if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }" if (parenthesized_expression "((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5)" ( (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5" (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1" (parenthesized_expression "(DAT_000876e4 >> 6 & 0x7f)" ( (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" identifier >> number_literal) & number_literal) )) + identifier) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);" statement_identifier : (expression_statement "uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);" (assignment_expression "uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5)" identifier = (call_expression "dcgettext(0,"Second operand of .save contradicts .prologue",5)" identifier (argument_list "(0,"Second operand of .save contradicts .prologue",5)" ( number_literal , (string_literal ""Second operand of .save contradicts .prologue"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_00029470(uVar2);" (call_expression "FUN_00029470(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) }))) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) + IDENT) == IDENT) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (return_statement return ;) })))
(function_definition "void FUN_0004afa0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined2 uVar4;\n  uint uVar5;\n  undefined1 local_44 [8];\n  uint local_3c;\n  char local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4afa9;\n  iVar1 = FUN_00049f00();\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = FUN_00040d30();\n  FUN_0001eec0(local_44);\n  if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0004afa0(void)" (identifier "FUN_0004afa0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  undefined2 uVar4;\n  uint uVar5;\n  undefined1 local_44 [8];\n  uint local_3c;\n  char local_34;\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4afa9;\n  iVar1 = FUN_00049f00();\n  if (iVar1 == 0) {\n    return;\n  }\n  iVar1 = FUN_00040d30();\n  FUN_0001eec0(local_44);\n  if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined2 uVar4;" (type_identifier "undefined2") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined1 local_44 [8];" (type_identifier "undefined1") (array_declarator "local_44 [8]" (identifier "local_44") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "char local_34;" (primitive_type "char") (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 "char local_20;" (primitive_type "char") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x4afa9;" (assignment_expression "uStack_14 = 0x4afa9" (identifier "uStack_14") (= "=") (number_literal "0x4afa9")) (; ";")) (expression_statement "iVar1 = FUN_00049f00();" (assignment_expression "iVar1 = FUN_00049f00()" (identifier "iVar1") (= "=") (call_expression "FUN_00049f00()" (identifier "FUN_00049f00") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00040d30();" (assignment_expression "iVar1 = FUN_00040d30()" (identifier "iVar1") (= "=") (call_expression "FUN_00040d30()" (identifier "FUN_00040d30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0001eec0(local_44);" (call_expression "FUN_0001eec0(local_44)" (identifier "FUN_0001eec0") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")"))) (; ";")) (if_statement "if (iVar1 == 0x2c) {\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }\n  else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" (if "if") (parenthesized_expression "(iVar1 == 0x2c)" (( "(") (binary_expression "iVar1 == 0x2c" (identifier "iVar1") (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\n    FUN_00040d30();\n    FUN_0001eec0(local_30);\n    if (local_34 != '\x05') goto LAB_0004b007;\n    uVar3 = local_3c;\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;\nLAB_0004b05e:\n    uVar4 = (undefined2)uVar5;\n    if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }\n    if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);\n    FUN_00029550(uVar2);\n    FUN_00041030();\n  }" ({ "{") (expression_statement "FUN_00040d30();" (call_expression "FUN_00040d30()" (identifier "FUN_00040d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001eec0(local_30);" (call_expression "FUN_0001eec0(local_30)" (identifier "FUN_0001eec0") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (if_statement "if (local_34 != '\x05') goto LAB_0004b007;" (if "if") (parenthesized_expression "(local_34 != '\x05')" (( "(") (binary_expression "local_34 != '\x05'" (identifier "local_34") (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (goto_statement "goto LAB_0004b007;" (goto "goto") (statement_identifier "LAB_0004b007") (; ";"))) (expression_statement "uVar3 = local_3c;" (assignment_expression "uVar3 = local_3c" (identifier "uVar3") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;" (if "if") (parenthesized_expression "((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28))" (( "(") (binary_expression "(local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)" (parenthesized_expression "(local_20 != '\x05')" (( "(") (binary_expression "local_20 != '\x05'" (identifier "local_20") (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(uVar5 = local_28, 0x7f < local_28)" (( "(") (comma_expression "uVar5 = local_28, 0x7f < local_28" (assignment_expression "uVar5 = local_28" (identifier "uVar5") (= "=") (identifier "local_28")) (, ",") (binary_expression "0x7f < local_28" (number_literal "0x7f") (< "<") (identifier "local_28"))) () ")"))) () ")")) (goto_statement "goto LAB_0004b03e;" (goto "goto") (statement_identifier "LAB_0004b03e") (; ";"))) (labeled_statement "LAB_0004b05e:\n    uVar4 = (undefined2)uVar5;" (statement_identifier "LAB_0004b05e") (: ":") (expression_statement "uVar4 = (undefined2)uVar5;" (assignment_expression "uVar4 = (undefined2)uVar5" (identifier "uVar4") (= "=") (cast_expression "(undefined2)uVar5" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "uVar5"))) (; ";"))) (if_statement "if (local_3c == 0x128) {\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }" (if "if") (parenthesized_expression "(local_3c == 0x128)" (( "(") (binary_expression "local_3c == 0x128" (identifier "local_3c") (== "==") (number_literal "0x128")) () ")")) (compound_statement "{\n      FUN_00041760();\n      FUN_00041030();\n      iVar1 = FUN_00041760();\n      *(undefined2 *)(iVar1 + 0x14) = uVar4;\n      FUN_00041030();\n      return;\n    }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (local_3c < 0x129) {\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }\n    else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(local_3c < 0x129)" (( "(") (binary_expression "local_3c < 0x129" (identifier "local_3c") (< "<") (number_literal "0x129")) () ")")) (compound_statement "{\n      if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }\n      if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" ({ "{") (if_statement "if (local_3c == 0x112) {\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }" (if "if") (parenthesized_expression "(local_3c == 0x112)" (( "(") (binary_expression "local_3c == 0x112" (identifier "local_3c") (== "==") (number_literal "0x112")) () ")")) (compound_statement "{\n        FUN_00041760();\n        FUN_00041030();\n        iVar1 = FUN_00041760();\n        *(undefined2 *)(iVar1 + 0x14) = uVar4;\n        FUN_00041030();\n        return;\n      }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (local_3c < 0x113) {\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" (if "if") (parenthesized_expression "(local_3c < 0x113)" (( "(") (binary_expression "local_3c < 0x113" (identifier "local_3c") (< "<") (number_literal "0x113")) () ")")) (compound_statement "{\n        if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" ({ "{") (if_statement "if (local_3c == 0x111) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" (if "if") (parenthesized_expression "(local_3c == 0x111)" (( "(") (binary_expression "local_3c == 0x111" (identifier "local_3c") (== "==") (number_literal "0x111")) () ")")) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" (else "else") (compound_statement "{\n        if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" ({ "{") (if_statement "if (local_3c == 0x113) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" (if "if") (parenthesized_expression "(local_3c == 0x113)" (( "(") (binary_expression "local_3c == 0x113" (identifier "local_3c") (== "==") (number_literal "0x113")) () ")")) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (local_3c == 0x124) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" (if "if") (parenthesized_expression "(local_3c == 0x124)" (( "(") (binary_expression "local_3c == 0x124" (identifier "local_3c") (== "==") (number_literal "0x124")) () ")")) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }\n      if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n    }" ({ "{") (if_statement "if (local_3c == 0x248) {\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }" (if "if") (parenthesized_expression "(local_3c == 0x248)" (( "(") (binary_expression "local_3c == 0x248" (identifier "local_3c") (== "==") (number_literal "0x248")) () ")")) (compound_statement "{\n        FUN_00041760();\n        FUN_00041030();\n        if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n        uVar3 = DAT_000876e4 >> 6 & 0x7f;\njoined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }\n        goto LAB_0004b24d;\n      }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((DAT_000876e4 & 0x20) == 0) {\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" (if "if") (parenthesized_expression "((DAT_000876e4 & 0x20) == 0)" (( "(") (binary_expression "(DAT_000876e4 & 0x20) == 0" (parenthesized_expression "(DAT_000876e4 & 0x20)" (( "(") (binary_expression "DAT_000876e4 & 0x20" (identifier "DAT_000876e4") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" ({ "{") (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar3 = DAT_000876e4 >> 6 & 0x7f;" (assignment_expression "uVar3 = DAT_000876e4 >> 6 & 0x7f" (identifier "uVar3") (= "=") (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" (identifier "DAT_000876e4") (>> ">>") (number_literal "6")) (& "&") (number_literal "0x7f"))) (; ";")) (labeled_statement "joined_r0x0004b35e:\n        if (uVar5 == uVar3) {\n          return;\n        }" (statement_identifier "joined_r0x0004b35e") (: ":") (if_statement "if (uVar5 == uVar3) {\n          return;\n        }" (if "if") (parenthesized_expression "(uVar5 == uVar3)" (( "(") (binary_expression "uVar5 == uVar3" (identifier "uVar5") (== "==") (identifier "uVar3")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (goto_statement "goto LAB_0004b24d;" (goto "goto") (statement_identifier "LAB_0004b24d") (; ";")) (} "}"))) (if_statement "if (local_3c < 0x249) {\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }\n      else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" (if "if") (parenthesized_expression "(local_3c < 0x249)" (( "(") (binary_expression "local_3c < 0x249" (identifier "local_3c") (< "<") (number_literal "0x249")) () ")")) (compound_statement "{\n        if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }\n        if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" ({ "{") (if_statement "if (local_3c == 0x140) {\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }" (if "if") (parenthesized_expression "(local_3c == 0x140)" (( "(") (binary_expression "local_3c == 0x140" (identifier "local_3c") (== "==") (number_literal "0x140")) () ")")) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }\n          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);\n          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;\n          goto joined_r0x0004b35e;\n        }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (((byte)DAT_000876e4 >> 2 & 4) == 0) {\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }" (if "if") (parenthesized_expression "(((byte)DAT_000876e4 >> 2 & 4) == 0)" (( "(") (binary_expression "((byte)DAT_000876e4 >> 2 & 4) == 0" (parenthesized_expression "((byte)DAT_000876e4 >> 2 & 4)" (( "(") (binary_expression "(byte)DAT_000876e4 >> 2 & 4" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000876e4")) (>> ">>") (number_literal "2")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar1 = FUN_00041760();\n            *(undefined2 *)(iVar1 + 0x14) = uVar4;\n            FUN_00041030();\n            return;\n          }" ({ "{") (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);" (assignment_expression "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8)" (identifier "iVar1") (= "=") (call_expression "FUN_00059350((byte)DAT_000876e4 >> 2 & 8)" (identifier "FUN_00059350") (argument_list "((byte)DAT_000876e4 >> 2 & 8)" (( "(") (binary_expression "(byte)DAT_000876e4 >> 2 & 8" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000876e4")) (>> ">>") (number_literal "2")) (& "&") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;" (assignment_expression "uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1" (identifier "uVar3") (= "=") (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1" (parenthesized_expression "(DAT_000876e4 >> 6 & 0x7f)" (( "(") (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" (identifier "DAT_000876e4") (>> ">>") (number_literal "6")) (& "&") (number_literal "0x7f")) () ")")) (+ "+") (identifier "iVar1"))) (; ";")) (goto_statement "goto joined_r0x0004b35e;" (goto "goto") (statement_identifier "joined_r0x0004b35e") (; ";")) (} "}"))) (if_statement "if (local_3c == 0x141) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" (if "if") (parenthesized_expression "(local_3c == 0x141)" (( "(") (binary_expression "local_3c == 0x141" (identifier "local_3c") (== "==") (number_literal "0x141")) () ")")) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" (else "else") (compound_statement "{\n        if (local_3c == 0x252) goto LAB_0004b200;\n        if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }\n      }" ({ "{") (if_statement "if (local_3c == 0x252) goto LAB_0004b200;" (if "if") (parenthesized_expression "(local_3c == 0x252)" (( "(") (binary_expression "local_3c == 0x252" (identifier "local_3c") (== "==") (number_literal "0x252")) () ")")) (goto_statement "goto LAB_0004b200;" (goto "goto") (statement_identifier "LAB_0004b200") (; ";"))) (if_statement "if (local_3c == 0x263) {\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" (if "if") (parenthesized_expression "(local_3c == 0x263)" (( "(") (binary_expression "local_3c == 0x263" (identifier "local_3c") (== "==") (number_literal "0x263")) () ")")) (compound_statement "{\n          FUN_00041760();\n          FUN_00041030();\n          iVar1 = FUN_00041760();\n          *(undefined2 *)(iVar1 + 0x14) = uVar4;\n          FUN_00041030();\n          return;\n        }" ({ "{") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(iVar1 + 0x14) = uVar4;" (assignment_expression "*(undefined2 *)(iVar1 + 0x14) = uVar4" (pointer_expression "*(undefined2 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined2 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "uVar2 = dcgettext(0,"First operand to .save not a valid register",5);" (assignment_expression "uVar2 = dcgettext(0,"First operand to .save not a valid register",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"First operand to .save not a valid register",5)" (identifier "dcgettext") (argument_list "(0,"First operand to .save not a valid register",5)" (( "(") (number_literal "0") (, ",") (string_literal ""First operand to .save not a valid register"" (" """) (string_content "First operand to .save not a valid register") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" (identifier "FUN_00029550") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" (else "else") (compound_statement "{\n    local_20 = '\x01';\n    uVar3 = local_3c;\n    if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }\nLAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);\n    FUN_00029550(uVar2);\n    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }\nLAB_0004b200:\n    FUN_00041760();\n    FUN_00041030();\n    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }\n    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);\n    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }\nLAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);\n    FUN_00029470(uVar2);\n  }" ({ "{") (expression_statement "local_20 = '\x01';" (assignment_expression "local_20 = '\x01'" (identifier "local_20") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "uVar3 = local_3c;" (assignment_expression "uVar3 = local_3c" (identifier "uVar3") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (local_34 == '\x05') {\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }" (if "if") (parenthesized_expression "(local_34 == '\x05')" (( "(") (binary_expression "local_34 == '\x05'" (identifier "local_34") (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\nLAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);\n      FUN_00029550(uVar2);\n      uVar5 = 0;\n      local_3c = uVar3;\n      goto LAB_0004b05e;\n    }" ({ "{") (labeled_statement "LAB_0004b03e:\n      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);" (statement_identifier "LAB_0004b03e") (: ":") (expression_statement "uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);" (assignment_expression "uVar2 = dcgettext(0,"Second operand to .save not a valid register",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"Second operand to .save not a valid register",5)" (identifier "dcgettext") (argument_list "(0,"Second operand to .save not a valid register",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Second operand to .save not a valid register"" (" """) (string_content "Second operand to .save not a valid register") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" (identifier "FUN_00029550") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = uVar3;" (assignment_expression "local_3c = uVar3" (identifier "local_3c") (= "=") (identifier "uVar3")) (; ";")) (goto_statement "goto LAB_0004b05e;" (goto "goto") (statement_identifier "LAB_0004b05e") (; ";")) (} "}"))) (labeled_statement "LAB_0004b007:\n    uVar2 = dcgettext(0,"First operand to .save not a register",5);" (statement_identifier "LAB_0004b007") (: ":") (expression_statement "uVar2 = dcgettext(0,"First operand to .save not a register",5);" (assignment_expression "uVar2 = dcgettext(0,"First operand to .save not a register",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"First operand to .save not a register",5)" (identifier "dcgettext") (argument_list "(0,"First operand to .save not a register",5)" (( "(") (number_literal "0") (, ",") (string_literal ""First operand to .save not a register"" (" """) (string_content "First operand to .save not a register") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00029550(uVar2);" (call_expression "FUN_00029550(uVar2)" (identifier "FUN_00029550") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }" (if "if") (parenthesized_expression "((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28))" (( "(") (binary_expression "(local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)" (parenthesized_expression "(local_20 != '\x05')" (( "(") (binary_expression "local_20 != '\x05'" (identifier "local_20") (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(uVar5 = local_28, 0x7f < local_28)" (( "(") (comma_expression "uVar5 = local_28, 0x7f < local_28" (assignment_expression "uVar5 = local_28" (identifier "uVar5") (= "=") (identifier "local_28")) (, ",") (binary_expression "0x7f < local_28" (number_literal "0x7f") (< "<") (identifier "local_28"))) () ")"))) () ")")) (compound_statement "{\n      uVar3 = 0x252;\n      goto LAB_0004b03e;\n    }" ({ "{") (expression_statement "uVar3 = 0x252;" (assignment_expression "uVar3 = 0x252" (identifier "uVar3") (= "=") (number_literal "0x252")) (; ";")) (goto_statement "goto LAB_0004b03e;" (goto "goto") (statement_identifier "LAB_0004b03e") (; ";")) (} "}"))) (labeled_statement "LAB_0004b200:\n    FUN_00041760();" (statement_identifier "LAB_0004b200") (: ":") (expression_statement "FUN_00041760();" (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (((byte)DAT_000876e4 >> 2 & 1) == 0) {\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }" (if "if") (parenthesized_expression "(((byte)DAT_000876e4 >> 2 & 1) == 0)" (( "(") (binary_expression "((byte)DAT_000876e4 >> 2 & 1) == 0" (parenthesized_expression "((byte)DAT_000876e4 >> 2 & 1)" (( "(") (binary_expression "(byte)DAT_000876e4 >> 2 & 1" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000876e4")) (>> ">>") (number_literal "2")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = FUN_00041760();\n      *(short *)(iVar1 + 0x14) = (short)uVar5;\n      FUN_00041030();\n      return;\n    }" ({ "{") (expression_statement "iVar1 = FUN_00041760();" (assignment_expression "iVar1 = FUN_00041760()" (identifier "iVar1") (= "=") (call_expression "FUN_00041760()" (identifier "FUN_00041760") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(short *)(iVar1 + 0x14) = (short)uVar5;" (assignment_expression "*(short *)(iVar1 + 0x14) = (short)uVar5" (pointer_expression "*(short *)(iVar1 + 0x14)" (* "*") (cast_expression "(short *)(iVar1 + 0x14)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(short)uVar5" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "FUN_00041030();" (call_expression "FUN_00041030()" (identifier "FUN_00041030") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);" (assignment_expression "iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe)" (identifier "iVar1") (= "=") (call_expression "FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe)" (identifier "FUN_00059350") (argument_list "((byte)DAT_000876e4 >> 2 & 0xe)" (( "(") (binary_expression "(byte)DAT_000876e4 >> 2 & 0xe" (binary_expression "(byte)DAT_000876e4 >> 2" (cast_expression "(byte)DAT_000876e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000876e4")) (>> ">>") (number_literal "2")) (& "&") (number_literal "0xe")) () ")")))) (; ";")) (if_statement "if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {\n      return;\n    }" (if "if") (parenthesized_expression "((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5)" (( "(") (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5" (binary_expression "(DAT_000876e4 >> 6 & 0x7f) + iVar1" (parenthesized_expression "(DAT_000876e4 >> 6 & 0x7f)" (( "(") (binary_expression "DAT_000876e4 >> 6 & 0x7f" (binary_expression "DAT_000876e4 >> 6" (identifier "DAT_000876e4") (>> ">>") (number_literal "6")) (& "&") (number_literal "0x7f")) () ")")) (+ "+") (identifier "iVar1")) (== "==") (identifier "uVar5")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0004b24d:\n    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);" (statement_identifier "LAB_0004b24d") (: ":") (expression_statement "uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);" (assignment_expression "uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"Second operand of .save contradicts .prologue",5)" (identifier "dcgettext") (argument_list "(0,"Second operand of .save contradicts .prologue",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Second operand of .save contradicts .prologue"" (" """) (string_content "Second operand of .save contradicts .prologue") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00029470(uVar2);" (call_expression "FUN_00029470(uVar2)" (identifier "FUN_00029470") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(int dummy)

{
  int var_2;
  char *pcVar2;
  type_1 *puVar3;
  type_2 var_8;
  type_3 uVar5;
  type_2 var_7;
  type_4 e1;
  type_4 e2;
  
  var_2 = var_1("save");
  if (var_2 == 0) {
    return;
  }
  var_2 = var_3(&e1,0x2c);
  var_4(&e1);
  if (var_2 == 0x2c) {
    var_2 = var_3(&e2,0x2c);
    var_4(&e2);
    if (e1._16_1_ != '\x05') goto LAB_0004b007;
    var_8 = (type_2)e1.X_add_number;
    if ((e2._16_1_ != '\x05') || (var_7 = (type_2)e2.X_add_number, 0x7f < (type_2)e2.X_add_number))
    goto LAB_0004b03e;
LAB_0004b05e:
    uVar5 = (type_3)var_7;
    if ((type_2)e1.X_add_number == 0x128) {
      puVar3 = var_5(fpsr_when);
      var_6(puVar3,var_2);
      puVar3 = var_5(fpsr_gr);
      (puVar3->r).record.p.r.gr = uVar5;
      var_6(puVar3,0x100);
      return;
    }
    if ((type_2)e1.X_add_number < 0x129) {
      if ((type_2)e1.X_add_number == 0x112) {
        puVar3 = var_5(bspstore_when);
        var_6(puVar3,var_2);
        puVar3 = var_5(bspstore_gr);
        (puVar3->r).record.p.r.gr = uVar5;
        var_6(puVar3,0x100);
        return;
      }
      if ((type_2)e1.X_add_number < 0x113) {
        if ((type_2)e1.X_add_number == 0x111) {
          puVar3 = var_5(bsp_when);
          var_6(puVar3,var_2);
          puVar3 = var_5(bsp_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          var_6(puVar3,0x100);
          return;
        }
      }
      else {
        if ((type_2)e1.X_add_number == 0x113) {
          puVar3 = var_5(rnat_when);
          var_6(puVar3,var_2);
          puVar3 = var_5(rnat_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          var_6(puVar3,0x100);
          return;
        }
        if ((type_2)e1.X_add_number == 0x124) {
          puVar3 = var_5(unat_when);
          var_6(puVar3,var_2);
          puVar3 = var_5(unat_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          var_6(puVar3,0x100);
          return;
        }
      }
    }
    else {
      if ((type_2)e1.X_add_number == 0x248) {
        puVar3 = var_5(rp_when);
        var_6(puVar3,var_2);
        if ((unwind._36_2_ & 0x20) == 0) {
          puVar3 = var_5(rp_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          var_6(puVar3,0x100);
          return;
        }
        var_8 = (type_3)unwind._36_2_ >> 6 & 0x7f;
joined_r0x0004b35e:
        if (var_7 == var_8) {
          return;
        }
        goto LAB_0004b24d;
      }
      if ((type_2)e1.X_add_number < 0x249) {
        if ((type_2)e1.X_add_number == 0x140) {
          puVar3 = var_5(pfs_when);
          var_6(puVar3,var_2);
          if (((type_5)unwind._36_1_ >> 2 & 4) == 0) {
            puVar3 = var_5(pfs_gr);
            (puVar3->r).record.p.r.gr = uVar5;
            var_6(puVar3,0x100);
            return;
          }
          var_2 = var_9((type_5)unwind._36_1_ >> 2 & 8);
          var_8 = ((type_3)unwind._36_2_ >> 6 & 0x7f) + var_2;
          goto joined_r0x0004b35e;
        }
        if ((type_2)e1.X_add_number == 0x141) {
          puVar3 = var_5(lc_when);
          var_6(puVar3,var_2);
          puVar3 = var_5(lc_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          var_6(puVar3,0x100);
          return;
        }
      }
      else {
        if ((type_2)e1.X_add_number == 0x252) goto LAB_0004b200;
        if ((type_2)e1.X_add_number == 0x263) {
          puVar3 = var_5(priunat_when_gr);
          var_6(puVar3,var_2);
          puVar3 = var_5(priunat_gr);
          (puVar3->r).record.p.r.gr = uVar5;
          var_6(puVar3,0x100);
          return;
        }
      }
    }
    pcVar2 = (char *)var_10(0,"First operand to .save not a valid register",5);
    var_11(pcVar2);
    var_6((type_1 *)0x0,var_2);
  }
  else {
    e2._16_1_ = 1;
    var_8 = (type_2)e1.X_add_number;
    if (e1._16_1_ == '\x05') {
LAB_0004b03e:
      pcVar2 = (char *)var_10(0,"Second operand to .save not a valid register",5);
      var_11(pcVar2);
      var_7 = 0;
      e1.X_add_number._0_4_ = var_8;
      goto LAB_0004b05e;
    }
LAB_0004b007:
    pcVar2 = (char *)var_10(0,"First operand to .save not a register",5);
    var_11(pcVar2);
    if ((e2._16_1_ != '\x05') || (var_7 = (type_2)e2.X_add_number, 0x7f < (type_2)e2.X_add_number)) {
      var_8 = 0x252;
      goto LAB_0004b03e;
    }
LAB_0004b200:
    puVar3 = var_5(preds_when);
    var_6(puVar3,var_2);
    if (((type_5)unwind._36_1_ >> 2 & 1) == 0) {
      puVar3 = var_5(preds_gr);
      (puVar3->r).record.p.r.gr = (type_3)var_7;
      var_6(puVar3,0x100);
      return;
    }
    var_2 = var_9((type_5)unwind._36_1_ >> 2 & 0xe);
    if (((type_3)unwind._36_2_ >> 6 & 0x7f) + var_2 == var_7) {
      return;
    }
LAB_0004b24d:
    pcVar2 = (char *)var_10(0,"Second operand of .save contradicts .prologue",5);
    var_12(pcVar2);
  }
  return;
}


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

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

void MASKED(void)

{
  int iVar1;
  undefined4 uVar2;
  uint uVar3;
  undefined2 uVar4;
  uint uVar5;
  undefined1 local_44 [8];
  uint local_3c;
  char local_34;
  undefined1 local_30 [8];
  uint local_28;
  char local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x4afa9;
  iVar1 = FUN_00049f00();
  if (iVar1 == 0) {
    return;
  }
  iVar1 = FUN_00040d30();
  FUN_0001eec0(local_44);
  if (iVar1 == 0x2c) {
    FUN_00040d30();
    FUN_0001eec0(local_30);
    if (local_34 != '\x05') goto LAB_0004b007;
    uVar3 = local_3c;
    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) goto LAB_0004b03e;
LAB_0004b05e:
    uVar4 = (undefined2)uVar5;
    if (local_3c == 0x128) {
      FUN_00041760();
      FUN_00041030();
      iVar1 = FUN_00041760();
      *(undefined2 *)(iVar1 + 0x14) = uVar4;
      FUN_00041030();
      return;
    }
    if (local_3c < 0x129) {
      if (local_3c == 0x112) {
        FUN_00041760();
        FUN_00041030();
        iVar1 = FUN_00041760();
        *(undefined2 *)(iVar1 + 0x14) = uVar4;
        FUN_00041030();
        return;
      }
      if (local_3c < 0x113) {
        if (local_3c == 0x111) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
      }
      else {
        if (local_3c == 0x113) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
        if (local_3c == 0x124) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
      }
    }
    else {
      if (local_3c == 0x248) {
        FUN_00041760();
        FUN_00041030();
        if ((DAT_000876e4 & 0x20) == 0) {
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
        uVar3 = DAT_000876e4 >> 6 & 0x7f;
joined_r0x0004b35e:
        if (uVar5 == uVar3) {
          return;
        }
        goto LAB_0004b24d;
      }
      if (local_3c < 0x249) {
        if (local_3c == 0x140) {
          FUN_00041760();
          FUN_00041030();
          if (((byte)DAT_000876e4 >> 2 & 4) == 0) {
            iVar1 = FUN_00041760();
            *(undefined2 *)(iVar1 + 0x14) = uVar4;
            FUN_00041030();
            return;
          }
          iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 8);
          uVar3 = (DAT_000876e4 >> 6 & 0x7f) + iVar1;
          goto joined_r0x0004b35e;
        }
        if (local_3c == 0x141) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
      }
      else {
        if (local_3c == 0x252) goto LAB_0004b200;
        if (local_3c == 0x263) {
          FUN_00041760();
          FUN_00041030();
          iVar1 = FUN_00041760();
          *(undefined2 *)(iVar1 + 0x14) = uVar4;
          FUN_00041030();
          return;
        }
      }
    }
    uVar2 = dcgettext(0,"First operand to .save not a valid register",5);
    FUN_00029550(uVar2);
    FUN_00041030();
  }
  else {
    local_20 = '\x01';
    uVar3 = local_3c;
    if (local_34 == '\x05') {
LAB_0004b03e:
      uVar2 = dcgettext(0,"Second operand to .save not a valid register",5);
      FUN_00029550(uVar2);
      uVar5 = 0;
      local_3c = uVar3;
      goto LAB_0004b05e;
    }
LAB_0004b007:
    uVar2 = dcgettext(0,"First operand to .save not a register",5);
    FUN_00029550(uVar2);
    if ((local_20 != '\x05') || (uVar5 = local_28, 0x7f < local_28)) {
      uVar3 = 0x252;
      goto LAB_0004b03e;
    }
LAB_0004b200:
    FUN_00041760();
    FUN_00041030();
    if (((byte)DAT_000876e4 >> 2 & 1) == 0) {
      iVar1 = FUN_00041760();
      *(short *)(iVar1 + 0x14) = (short)uVar5;
      FUN_00041030();
      return;
    }
    iVar1 = FUN_00059350((byte)DAT_000876e4 >> 2 & 0xe);
    if ((DAT_000876e4 >> 6 & 0x7f) + iVar1 == uVar5) {
      return;
    }
LAB_0004b24d:
    uVar2 = dcgettext(0,"Second operand of .save contradicts .prologue",5);
    FUN_00029470(uVar2);
  }
  return;
}

