
/* WARNING: Enum "GdkEventType": Some values do not have unique names */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

gint key_event(GtkWidget *widget,GdkEventKey *event,gpointer data)

{
  char cVar1;
  guint gVar2;
  long lVar3;
  ulong uVar4;
  ulong uVar5;
  ulong uVar6;
  bool bVar7;
  bool bVar8;
  int iVar9;
  wchar_t wVar10;
  uint uVar11;
  int iVar12;
  ulong uVar13;
  long lVar14;
  ulong uVar15;
  undefined *puVar16;
  ulong uVar17;
  char *pcVar18;
  uint uVar19;
  int iVar20;
  uint uVar21;
  int iVar22;
  long in_FS_OFFSET;
  byte bVar23;
  int local_228;
  int local_224;
  wchar_t local_220;
  wchar_t wlen;
  wchar_t *wp;
  wchar_t ucsoutput [2];
  char codes [49];
  char output [256];
  
  bVar23 = 0;
  lVar3 = *(long *)(in_FS_OFFSET + 0x28);
  *(guint32 *)((long)data + 0x22e0) = event->time;
  if (event->type == GDK_KEY_RELEASE) {
    if (((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||
       (*(int *)((long)data + 0xd6c) < 2)) {
      iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);
      if (iVar12 != 0) goto LAB_0014cf81;
      goto LAB_0014cf74;
    }
    output[0] = (char)*(int *)((long)data + 0xd68);
    if (*(int *)((long)data + 0xd10) != 0) {
      iVar12 = 0;
      wVar10 = L'\x01';
      goto LAB_0014d003;
    }
    local_220 = L'\x01';
    wVar10 = L'\x01';
    iVar12 = 0;
    goto LAB_0014e201;
  }
LAB_0014cf74:
  if (event->type != GDK_KEY_PRESS) goto LAB_0014cf81;
  if (event->keyval - 0xffe7 < 4) {
    *(undefined4 *)((long)data + 0xd68) = 0xffffffff;
    *(undefined4 *)((long)data + 0xd6c) = 0;
    goto LAB_0014cf81;
  }
  if (((*(uint *)((long)data + 0x2300) & event->state) != 0) &&
     (iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2)) {
    iVar9 = 8;
    switch(event->keyval) {
    case 0xff95:
    case 0xffb7:
      iVar9 = 7;
      break;
    case 0xff96:
    case 0xffb4:
      iVar9 = 4;
      break;
    case 0xff97:
    case 0xffb8:
      break;
    case 0xff98:
    case 0xffb6:
      iVar9 = 6;
      break;
    case 0xff99:
    case 0xffb2:
      iVar9 = 2;
      break;
    case 0xff9a:
    case 0xffb9:
      iVar9 = 9;
      break;
    case 0xff9b:
    case 0xffb3:
      iVar9 = 3;
      break;
    case 0xff9c:
    case 0xffb1:
      iVar9 = 1;
      break;
    case 0xff9d:
    case 0xffb5:
      iVar9 = 5;
      break;
    case 0xff9e:
    case 0xffb0:
      iVar9 = 0;
      break;
    default:
      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;
      goto LAB_0014d090;
    }
    if (iVar12 != -1) {
      iVar9 = iVar9 + iVar12 * 10;
    }
    *(int *)((long)data + 0xd68) = iVar9;
    *(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1;
    goto LAB_0014cf81;
  }
LAB_0014d090:
  uVar17._0_4_ = event->state;
  uVar17._4_4_ = event->keyval;
  uVar13 = uVar17 & 0xffffffff00000004;
  if (uVar13 == 0x3e00000004) {
    change_font_size((gui_data *)data,L'\x01');
    goto LAB_0014cf81;
  }
  if (uVar13 == 0x3c00000004) {
    change_font_size((gui_data *)data,L'\xffffffff');
    goto LAB_0014cf81;
  }
  uVar17 = uVar17 & 0xffffffff00000001;
  if (uVar17 == 0xff5500000001) {
    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2));
    goto LAB_0014cf81;
  }
  if (uVar13 == 0xff5500000004) {
    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff');
    goto LAB_0014cf81;
  }
  if (uVar17 == 0xff5600000001) {
    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2);
    goto LAB_0014cf81;
  }
  if (uVar13 == 0xff5600000004) {
    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01');
    goto LAB_0014cf81;
  }
  if (uVar17 == 0xff6300000001) {
    request_paste(data);
    goto LAB_0014cf81;
  }
  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x4e);
  if ((*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0) ||
     (iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0)) {
    bVar7 = false;
LAB_0014d16b:
    output[0] = '\x1b';
    if (((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&
       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),
       iVar12 != 0)) goto LAB_0014cf81;
  }
  else {
    output[0] = '\x1b';
    uVar11 = event->keyval - 0xff7f;
    if (0x3a < uVar11) {
      bVar7 = true;
      goto LAB_0014d16b;
    }
    if ((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0) {
      bVar7 = true;
      goto LAB_0014d16b;
    }
    bVar7 = true;
  }
  lVar14 = -1;
  pcVar18 = event->string;
  do {
    if (lVar14 == 0) break;
    lVar14 = lVar14 + -1;
    cVar1 = *pcVar18;
    pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;
  } while (cVar1 != '\0');
  wlen = mb_to_wc(L'\xffff',L'\0',event->string,~(uint)lVar14 + L'\xffffffff',ucsoutput,L'\x1f');
  wp = ucsoutput;
  wVar10 = charset_from_unicode
                     (&wp,&wlen,output + 1,L'þ',L'7',(charset_state *)0x0,(char *)0x0,L'\0');
  output[wVar10 + L'\x01'] = '\0';
  if ((output[1] == '\0') && (wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10)) {
    ucsoutput[0] = L'\x1b';
    local_224 = 1;
    iVar22 = 2;
    ucsoutput[1] = wVar10;
  }
  else {
    output[0xff] = '\0';
    lVar14 = -1;
    pcVar18 = output;
    do {
      if (lVar14 == 0) break;
      lVar14 = lVar14 + -1;
      cVar1 = *pcVar18;
      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;
    } while (cVar1 != '\0');
    iVar22 = ~(uint)lVar14 - 1;
    local_224 = 0;
  }
  uVar11 = event->state;
  if ((*(uint *)((long)data + 0x2300) & uVar11) == 0) {
    iVar12 = 1;
LAB_0014d45d:
    if (output[1] == '\0') {
      uVar13._0_4_ = event->state;
      uVar13._4_4_ = event->keyval;
      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;
      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;
    }
    else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {
      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;
      output[1] = output[1] + -0x18;
    }
    goto LAB_0014d51c;
  }
  iVar12 = 0;
  if (iVar22 != 1) goto LAB_0014d45d;
  if (output[1] == '\0') {
    uVar6._0_4_ = event->state;
    uVar6._4_4_ = event->keyval;
    if ((uVar6 & 0xffffffff00000004) != 0x6000000004) {
      iVar22 = 0;
      iVar12 = 0;
      goto LAB_0014d51c;
    }
    iVar12 = 0;
LAB_0014d4ea:
    output[1] = '\x1c';
    if ((uVar11 & 4) != 0) {
      local_224 = 0;
LAB_0014d49c:
LAB_0014d4a6:
      if ((output[1] == '2') || (output[1] == ' ')) {
        output._1_4_ = (uint)(uint3)output._2_3_ << 8;
        iVar22 = 2;
      }
      else if (output[1] == '8') {
        output[1] = '\x7f';
        iVar22 = 2;
      }
      else if (output[1] == '/') {
        output[1] = '\x1f';
        iVar22 = 2;
      }
      else {
        iVar22 = 2;
        if ((byte)(output[1] - 0x40U) < 0x3f) {
          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;
        }
      }
      goto LAB_0014d51c;
    }
    uVar15._0_4_ = event->state;
    uVar15._4_4_ = event->keyval;
    local_224 = 0;
    iVar22 = 2;
  }
  else {
    iVar22 = 0;
    iVar12 = 0;
LAB_0014d51c:
    uVar15._0_4_ = event->state;
    uVar15._4_4_ = event->keyval;
    if ((uVar15 & 0xffffffff00000004) == 0xff6b00000004) {
      if (*(long *)((long)data + 0xd90) != 0) {
        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);
      }
      goto LAB_0014cf81;
    }
  }
  gVar2 = event->keyval;
  if (gVar2 == 0xff0d) {
    output[1] = '\r';
    bVar8 = true;
    local_224 = 0;
    iVar22 = 2;
LAB_0014d670:
    local_220 = L'7';
    if ((uVar15 & 0xffffffff00000001) == 0xff0800000000) {
      iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);
      output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;
      local_220 = L'7';
      local_224 = 0;
      bVar8 = true;
      iVar22 = 2;
    }
  }
  else {
    if (output[1] != '\0') {
      bVar8 = false;
      goto LAB_0014d670;
    }
    if ((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)) {
      iVar22 = 2;
      local_224 = 0;
    }
    bVar8 = false;
    if ((uVar15 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;
    output[1] = -0x60;
    local_220 = L'\x01';
    local_224 = 0;
    bVar8 = false;
    iVar22 = 2;
  }
  uVar4._0_4_ = event->state;
  uVar4._4_4_ = event->keyval;
  if ((uVar4 & 0xffffffff00000001) == 0xff0800000001) {
    iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);
    output[1] = (-(iVar22 == 0) & 0x77U) + 8;
    local_224 = 0;
    bVar8 = true;
    iVar22 = 2;
  }
  gVar2 = event->keyval;
  if ((gVar2 != 0xfe20) &&
     (uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,
     (uVar5 & 0xffffffff00000001) != 0xff0900000001)) {
    if ((1 < iVar22) || (gVar2 != 0xff09)) goto LAB_0014d7d9;
    output[1] = '\t';
    iVar22 = 2;
    goto switchD_0014d8c5_caseD_ff80;
  }
  builtin_strncpy(output + 1,"\x1b[Z",4);
  local_224 = 0;
  iVar22 = 4;
LAB_0014d7d9:
  if (iVar9 != 0) {
    switch(gVar2) {
    case 0xff95:
    case 0xffb7:
      pcVar18 = "yY\x19";
      break;
    case 0xff96:
    case 0xffb4:
      pcVar18 = "hH\b";
      break;
    case 0xff97:
    case 0xffb8:
      pcVar18 = "kK\v";
      break;
    case 0xff98:
    case 0xffb6:
      pcVar18 = "lL\f";
      break;
    case 0xff99:
    case 0xffb2:
      pcVar18 = "jJ\n";
      break;
    case 0xff9a:
    case 0xffb9:
      pcVar18 = "uU\x15";
      break;
    case 0xff9b:
    case 0xffb3:
      pcVar18 = "nN\x0e";
      break;
    case 0xff9c:
    case 0xffb1:
      pcVar18 = "bB\x02";
      break;
    case 0xff9d:
    case 0xffb5:
      pcVar18 = "...";
      break;
    default:
      goto switchD_0014d802_caseD_ff9e;
    }
    if ((event->state & 4) == 0) {
      if ((event->state & 1) == 0) {
        output[1] = *pcVar18;
      }
      else {
        output[1] = pcVar18[1];
      }
    }
    else {
      output[1] = pcVar18[2];
    }
    wVar10 = L'\x02' - iVar12;
    local_228 = 0;
    iVar22 = 2;
    goto LAB_0014e163;
  }
switchD_0014d802_caseD_ff9e:
  if (bVar7) {
    switch(gVar2) {
    case 0xff7f:
      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {
        iVar9 = 0x50;
        goto LAB_0014d978;
      }
      iVar9 = 0x50;
      goto LAB_0014d8e1;
    default:
      goto switchD_0014d8c5_caseD_ff80;
    case 0xff8d:
      iVar9 = 0x4d;
      break;
    case 0xff95:
    case 0xffb7:
      iVar9 = 0x77;
      break;
    case 0xff96:
    case 0xffb4:
      iVar9 = 0x74;
      break;
    case 0xff97:
    case 0xffb8:
      iVar9 = 0x78;
      break;
    case 0xff98:
    case 0xffb6:
      iVar9 = 0x76;
      break;
    case 0xff99:
    case 0xffb2:
      iVar9 = 0x72;
      break;
    case 0xff9a:
    case 0xffb9:
      iVar9 = 0x79;
      break;
    case 0xff9b:
    case 0xffb3:
      iVar9 = 0x73;
      break;
    case 0xff9c:
    case 0xffb1:
      iVar9 = 0x71;
      break;
    case 0xff9d:
    case 0xffb5:
      iVar9 = 0x75;
      break;
    case 0xff9e:
    case 0xffb0:
      iVar9 = 0x70;
      break;
    case 0xff9f:
    case 0xffae:
      iVar9 = 0x6e;
      break;
    case 0xffaa:
      iVar9 = 0x52;
      goto LAB_0014d8cd;
    case 0xffab:
      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);
      if (iVar9 == 2) {
        iVar9 = 0x6c - (uint)((event->state & 1) == 0);
      }
      else {
        iVar9 = 0x6d - (uint)((event->state & 1) == 0);
      }
      break;
    case 0xffad:
      iVar9 = 0x53;
      goto LAB_0014d8cd;
    case 0xffaf:
      iVar9 = 0x51;
LAB_0014d8cd:
      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;
LAB_0014d8e1:
      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);
      iVar22 = 3;
      goto LAB_0014d90a;
    }
    if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {
LAB_0014d978:
      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);
      iVar22 = 4;
    }
    else {
      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);
      iVar22 = 4;
    }
    goto LAB_0014d90a;
  }
switchD_0014d8c5_caseD_ff80:
  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);
  uVar11 = event->keyval;
  switch(uVar11) {
  case 0xffbe:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17;
    goto LAB_0014da2f;
  case 0xffbf:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18;
    goto LAB_0014da2f;
  case 0xffc0:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19;
    goto LAB_0014da2f;
  case 0xffc1:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;
    goto LAB_0014da2f;
  case 0xffc2:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;
    goto LAB_0014da2f;
  case 0xffc3:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;
    goto LAB_0014da2f;
  case 0xffc4:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;
    goto LAB_0014da2f;
  case 0xffc5:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20;
LAB_0014da2f:
    uVar19 = event->state;
    uVar21 = uVar19 & 4;
    if (uVar21 != 0) goto LAB_0014e24b;
LAB_0014dbca:
    uVar21 = 0;
LAB_0014dbfe:
    if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;
    local_228 = (int)(char)(&DAT_00182a60)[local_228];
    iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);
    if (iVar20 != 0) goto LAB_0014dce7;
    bVar7 = 10 < local_228;
    goto LAB_0014dd14;
  case 0xffc6:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21;
    break;
  case 0xffc7:
    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22;
    break;
  case 0xffc8:
    local_228 = 0x17;
    break;
  case 0xffc9:
    local_228 = 0x18;
    break;
  case 0xffca:
    local_228 = 0x19;
    break;
  case 0xffcb:
    local_228 = 0x1a;
    break;
  case 0xffcc:
    local_228 = 0x1c;
    break;
  case 0xffcd:
    local_228 = 0x1d;
    break;
  case 0xffce:
    local_228 = 0x1f;
    break;
  case 0xffcf:
    local_228 = 0x20;
    break;
  case 0xffd0:
    local_228 = 0x21;
    break;
  case 0xffd1:
    local_228 = 0x22;
    break;
  default:
    uVar19 = event->state;
    uVar21 = uVar19 & 4;
    if (uVar21 == 0) {
      if (uVar11 == 0xff95) {
        local_228 = 1;
        goto LAB_0014dbfe;
      }
      if (uVar11 < 0xff96) {
        if (uVar11 == 0xff56) {
          local_228 = 6;
        }
        else if (uVar11 < 0xff57) {
          local_228 = 1;
          if (uVar11 != 0xff50) {
            if (uVar11 != 0xff55) {
              local_228 = 0;
              goto LAB_0014dbca;
            }
            local_228 = 5;
          }
        }
        else {
          local_228 = 4;
          if (uVar11 != 0xff57) {
            if (uVar11 != 0xff63) {
              local_228 = 0;
              goto LAB_0014dbca;
            }
            local_228 = 2;
          }
        }
        goto LAB_0014dbfe;
      }
      if (uVar11 == 0xff9c) {
        local_228 = 4;
        goto LAB_0014dbfe;
      }
      if (uVar11 < 0xff9d) {
        local_228 = 5;
        if (uVar11 != 0xff9a) {
          if (uVar11 != 0xff9b) {
            local_228 = 0;
            goto LAB_0014dbca;
          }
          local_228 = 6;
        }
        goto LAB_0014dbfe;
      }
      local_228 = 3;
      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))
      goto LAB_0014dbfe;
      local_228 = 0;
      goto LAB_0014dbca;
    }
    local_228 = 0;
    goto LAB_0014dbfe;
  }
  uVar19 = event->state;
  uVar21 = uVar19 & 4;
LAB_0014e24b:
  iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);
  if (iVar20 == 0) {
    bVar7 = 10 < local_228;
    if ((0x17 < local_228 - 0xbU) || (iVar9 != 5)) {
      if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;
      builtin_strncpy(codes,"HL.FIG",7);
      if (local_228 == 3) {
        output[1] = '\x7f';
        iVar22 = 2;
      }
      else {
        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);
        iVar22 = 4;
      }
    }
    else {
LAB_0014ddd3:
      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);
      iVar9 = 8;
      switch(uVar11) {
      case 0xffbf:
        iVar9 = 1;
        break;
      case 0xffc0:
        iVar9 = 2;
        break;
      case 0xffc1:
        iVar9 = 3;
        break;
      case 0xffc2:
        iVar9 = 4;
        break;
      case 0xffc3:
        iVar9 = 5;
        break;
      case 0xffc4:
        iVar9 = 6;
        break;
      case 0xffc5:
        iVar9 = 7;
        break;
      case 0xffc6:
        break;
      case 0xffc7:
        iVar9 = 9;
        break;
      case 0xffc8:
        iVar9 = 10;
        break;
      case 0xffc9:
        iVar9 = 0xb;
        break;
      default:
        iVar9 = 0;
      }
      if ((uVar19 & 1) != 0) {
        iVar9 = iVar9 + 0xc;
      }
      if (uVar21 != 0) {
        iVar9 = iVar9 + 0x18;
      }
      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);
      iVar22 = 4;
    }
LAB_0014d90a:
    wVar10 = iVar22 - iVar12;
    local_228 = 0;
  }
  else {
LAB_0014dce7:
    if (local_228 - 1U < 6) {
      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);
      iVar22 = 3;
      goto LAB_0014d90a;
    }
    bVar7 = 10 < local_228;
    if ((local_228 - 0xbU < 0x18) && (iVar9 == 5)) goto LAB_0014ddd3;
LAB_0014dd14:
    if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {
      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);
      if (iVar20 == 0) {
        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);
        iVar22 = 4;
      }
      else {
        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);
        iVar22 = 3;
      }
      goto LAB_0014d90a;
    }
    if (((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)) {
      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);
      iVar22 = 5;
      goto LAB_0014d90a;
    }
    if (((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)) {
      if (iVar20 == 0) {
        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);
        iVar22 = 4;
      }
      else {
        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);
        iVar22 = 3;
      }
      goto LAB_0014d90a;
    }
    if (((local_228 == 1) || (local_228 == 4)) &&
       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)) {
      puVar16 = &DAT_001827d9;
      if (local_228 != 1) {
        puVar16 = &DAT_001827dd;
      }
      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);
      iVar22 = iVar22 + 1;
      local_228 = 0;
    }
    else {
      if (local_228 != 0) {
        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);
        iVar22 = iVar22 + 1;
        goto LAB_0014d90a;
      }
      switch(event->keyval) {
      case 0xff51:
      case 0xff96:
        wVar10 = L'D';
        break;
      case 0xff52:
      case 0xff97:
        wVar10 = L'A';
        break;
      case 0xff53:
      case 0xff98:
        wVar10 = L'C';
        break;
      case 0xff54:
      case 0xff99:
        wVar10 = L'B';
        break;
      default:
        local_228 = local_224;
        goto LAB_0014e155;
      case 0xff58:
      case 0xff9d:
        wVar10 = L'G';
      }
      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,
                                event->state & 4);
      iVar22 = wVar10 + L'\x01';
    }
LAB_0014e155:
    wVar10 = iVar22 - iVar12;
    if (wVar10 < L'\x01') goto LAB_0014cf81;
  }
LAB_0014e163:
  if (bVar8) {
    output[iVar22] = '\0';
    if (*(void **)((long)data + 0xd88) != (void *)0x0) {
      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');
    }
  }
  else if (*(int *)((long)data + 0xd10) == 0) {
    if (local_228 == 0) {
LAB_0014e201:
      if (*(void **)((long)data + 0xd88) != (void *)0x0) {
        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');
      }
    }
    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {
      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');
    }
  }
  else {
LAB_0014d003:
    if (*(void **)((long)data + 0xd88) != (void *)0x0) {
      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');
    }
  }
  show_mouseptr((gui_data *)data,L'\0');
  term_seen_key_event(*(Terminal **)((long)data + 0xda0));
LAB_0014cf81:
  if (lVar3 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return 1;
}



undefined8 FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)

{
  char cVar1;
  uint uVar2;
  bool bVar3;
  bool bVar4;
  int iVar5;
  int iVar6;
  ulong uVar7;
  long lVar8;
  undefined *puVar9;
  ulong uVar10;
  char *pcVar11;
  undefined8 uVar12;
  uint uVar13;
  int iVar14;
  uint uVar15;
  int iVar16;
  long in_FS_OFFSET;
  byte bVar17;
  int local_228;
  int local_224;
  undefined4 local_220;
  undefined4 local_214;
  int *local_210;
  int local_208 [32];
  undefined8 local_188;
  undefined8 local_180;
  undefined8 local_178;
  undefined8 local_170;
  undefined8 local_168;
  undefined8 local_160;
  undefined1 local_158;
  char local_148;
  uint local_147 [63];
  undefined1 local_49;
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  *(int *)(param_3 + 0x22e0) = param_2[5];
  if (*param_2 == 9) {
    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||
       (*(int *)(param_3 + 0xd6c) < 2)) {
      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);
      if (iVar6 != 0) goto LAB_0014cf81;
      goto LAB_0014cf74;
    }
    local_148 = (char)*(int *)(param_3 + 0xd68);
    if (*(int *)(param_3 + 0xd10) != 0) {
      iVar6 = 0;
      iVar5 = 1;
      goto LAB_0014d003;
    }
    local_220 = 1;
    iVar5 = 1;
    iVar6 = 0;
    goto LAB_0014e201;
  }
LAB_0014cf74:
  if (*param_2 != 8) goto LAB_0014cf81;
  if (param_2[7] - 0xffe7U < 4) {
    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;
    *(undefined4 *)(param_3 + 0xd6c) = 0;
    goto LAB_0014cf81;
  }
  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&
     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {
    iVar5 = 8;
    switch(param_2[7]) {
    case 0xff95:
    case 0xffb7:
      iVar5 = 7;
      break;
    case 0xff96:
    case 0xffb4:
      iVar5 = 4;
      break;
    case 0xff97:
    case 0xffb8:
      break;
    case 0xff98:
    case 0xffb6:
      iVar5 = 6;
      break;
    case 0xff99:
    case 0xffb2:
      iVar5 = 2;
      break;
    case 0xff9a:
    case 0xffb9:
      iVar5 = 9;
      break;
    case 0xff9b:
    case 0xffb3:
      iVar5 = 3;
      break;
    case 0xff9c:
    case 0xffb1:
      iVar5 = 1;
      break;
    case 0xff9d:
    case 0xffb5:
      iVar5 = 5;
      break;
    case 0xff9e:
    case 0xffb0:
      iVar5 = 0;
      break;
    default:
      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;
      goto LAB_0014d090;
    }
    if (iVar6 != -1) {
      iVar5 = iVar5 + iVar6 * 10;
    }
    *(int *)(param_3 + 0xd68) = iVar5;
    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;
    goto LAB_0014cf81;
  }
LAB_0014d090:
  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;
  if (uVar7 == 0x3e00000004) {
    FUN_0014cd38(param_3,1);
    goto LAB_0014cf81;
  }
  if (uVar7 == 0x3c00000004) {
    FUN_0014cd38(param_3,0xffffffff);
    goto LAB_0014cf81;
  }
  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;
  if (uVar10 == 0xff5500000001) {
    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));
    goto LAB_0014cf81;
  }
  if (uVar7 == 0xff5500000004) {
    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);
    goto LAB_0014cf81;
  }
  if (uVar10 == 0xff5600000001) {
    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);
    goto LAB_0014cf81;
  }
  if (uVar7 == 0xff5600000004) {
    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);
    goto LAB_0014cf81;
  }
  if (uVar10 == 0xff6300000001) {
    FUN_0014b0b2(param_3);
    goto LAB_0014cf81;
  }
  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);
  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||
     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {
    bVar3 = false;
LAB_0014d16b:
    local_148 = '\x1b';
    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&
       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)
       ) goto LAB_0014cf81;
  }
  else {
    local_148 = '\x1b';
    if (0x3a < param_2[7] - 0xff7fU) {
      bVar3 = true;
      goto LAB_0014d16b;
    }
    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {
      bVar3 = true;
      goto LAB_0014d16b;
    }
    bVar3 = true;
  }
  uVar7 = 0xffffffffffffffff;
  pcVar11 = *(char **)(param_2 + 10);
  do {
    if (uVar7 == 0) break;
    uVar7 = uVar7 - 1;
    cVar1 = *pcVar11;
    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;
  } while (cVar1 != '\0');
  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);
  local_210 = local_208;
  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);
  (&local_148)[iVar6 + 1] = '\0';
  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {
    local_208[0] = 0x1b;
    local_224 = 1;
    iVar16 = 2;
    local_208[1] = iVar6;
  }
  else {
    local_49 = 0;
    lVar8 = -1;
    pcVar11 = &local_148;
    do {
      if (lVar8 == 0) break;
      lVar8 = lVar8 + -1;
      cVar1 = *pcVar11;
      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;
    } while (cVar1 != '\0');
    iVar16 = ~(uint)lVar8 - 1;
    local_224 = 0;
  }
  uVar2 = param_2[6];
  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {
    iVar6 = 1;
LAB_0014d45d:
    if ((char)local_147[0] == '\0') {
      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;
      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;
    }
    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {
      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;
      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);
    }
    goto LAB_0014d51c;
  }
  iVar6 = 0;
  if (iVar16 != 1) goto LAB_0014d45d;
  if ((char)local_147[0] == '\0') {
    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {
      iVar16 = 0;
      iVar6 = 0;
      goto LAB_0014d51c;
    }
    iVar6 = 0;
LAB_0014d4ea:
    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);
    if ((uVar2 & 4) != 0) {
      local_224 = 0;
LAB_0014d49c:
LAB_0014d4a6:
      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {
        local_147[0] = (uint)local_147[0]._1_3_ << 8;
        iVar16 = 2;
      }
      else if ((char)local_147[0] == '8') {
        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);
        iVar16 = 2;
      }
      else if ((char)local_147[0] == '/') {
        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);
        iVar16 = 2;
      }
      else {
        iVar16 = 2;
        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {
          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;
        }
      }
      goto LAB_0014d51c;
    }
    uVar7 = *(ulong *)(param_2 + 6);
    local_224 = 0;
    iVar16 = 2;
  }
  else {
    iVar16 = 0;
    iVar6 = 0;
LAB_0014d51c:
    uVar7 = *(ulong *)(param_2 + 6);
    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {
      if (*(long *)(param_3 + 0xd90) != 0) {
        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);
      }
      goto LAB_0014cf81;
    }
  }
  iVar14 = param_2[7];
  if (iVar14 == 0xff0d) {
    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);
    bVar4 = true;
    local_224 = 0;
    iVar16 = 2;
LAB_0014d670:
    local_220 = 0x37;
    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {
      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);
      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);
      local_220 = 0x37;
      local_224 = 0;
      bVar4 = true;
      iVar16 = 2;
    }
  }
  else {
    if ((char)local_147[0] != '\0') {
      bVar4 = false;
      goto LAB_0014d670;
    }
    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {
      iVar16 = 2;
      local_224 = 0;
    }
    bVar4 = false;
    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;
    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);
    local_220 = 1;
    local_224 = 0;
    bVar4 = false;
    iVar16 = 2;
  }
  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {
    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);
    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);
    local_224 = 0;
    bVar4 = true;
    iVar16 = 2;
  }
  iVar14 = param_2[7];
  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {
    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;
    local_147[0] = CONCAT31(local_147[0]._1_3_,9);
    iVar16 = 2;
    goto switchD_0014d8c5_caseD_ff80;
  }
  local_147[0] = 0x5a5b1b;
  local_224 = 0;
  iVar16 = 4;
LAB_0014d7d9:
  if (iVar5 != 0) {
    switch(iVar14) {
    case 0xff95:
    case 0xffb7:
      pcVar11 = "yY\x19";
      break;
    case 0xff96:
    case 0xffb4:
      pcVar11 = "hH\b";
      break;
    case 0xff97:
    case 0xffb8:
      pcVar11 = "kK\v";
      break;
    case 0xff98:
    case 0xffb6:
      pcVar11 = "lL\f";
      break;
    case 0xff99:
    case 0xffb2:
      pcVar11 = "jJ\n";
      break;
    case 0xff9a:
    case 0xffb9:
      pcVar11 = "uU\x15";
      break;
    case 0xff9b:
    case 0xffb3:
      pcVar11 = "nN\x0e";
      break;
    case 0xff9c:
    case 0xffb1:
      pcVar11 = "bB\x02";
      break;
    case 0xff9d:
    case 0xffb5:
      pcVar11 = "...";
      break;
    default:
      goto switchD_0014d802_caseD_ff9e;
    }
    if ((param_2[6] & 4U) == 0) {
      if ((param_2[6] & 1U) == 0) {
        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);
      }
      else {
        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);
      }
    }
    else {
      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);
    }
    iVar5 = 2 - iVar6;
    local_228 = 0;
    iVar16 = 2;
    goto LAB_0014e163;
  }
switchD_0014d802_caseD_ff9e:
  if (bVar3) {
    switch(iVar14) {
    case 0xff7f:
      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {
        iVar5 = 0x50;
        goto LAB_0014d978;
      }
      iVar5 = 0x50;
      goto LAB_0014d8e1;
    default:
      goto switchD_0014d8c5_caseD_ff80;
    case 0xff8d:
      iVar5 = 0x4d;
      break;
    case 0xff95:
    case 0xffb7:
      iVar5 = 0x77;
      break;
    case 0xff96:
    case 0xffb4:
      iVar5 = 0x74;
      break;
    case 0xff97:
    case 0xffb8:
      iVar5 = 0x78;
      break;
    case 0xff98:
    case 0xffb6:
      iVar5 = 0x76;
      break;
    case 0xff99:
    case 0xffb2:
      iVar5 = 0x72;
      break;
    case 0xff9a:
    case 0xffb9:
      iVar5 = 0x79;
      break;
    case 0xff9b:
    case 0xffb3:
      iVar5 = 0x73;
      break;
    case 0xff9c:
    case 0xffb1:
      iVar5 = 0x71;
      break;
    case 0xff9d:
    case 0xffb5:
      iVar5 = 0x75;
      break;
    case 0xff9e:
    case 0xffb0:
      iVar5 = 0x70;
      break;
    case 0xff9f:
    case 0xffae:
      iVar5 = 0x6e;
      break;
    case 0xffaa:
      iVar5 = 0x52;
      goto LAB_0014d8cd;
    case 0xffab:
      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);
      if (iVar5 == 2) {
        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);
      }
      else {
        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);
      }
      break;
    case 0xffad:
      iVar5 = 0x53;
      goto LAB_0014d8cd;
    case 0xffaf:
      iVar5 = 0x51;
LAB_0014d8cd:
      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;
LAB_0014d8e1:
      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);
      iVar16 = 3;
      goto LAB_0014d90a;
    }
    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {
LAB_0014d978:
      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);
      iVar16 = 4;
    }
    else {
      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);
      iVar16 = 4;
    }
    goto LAB_0014d90a;
  }
switchD_0014d8c5_caseD_ff80:
  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);
  uVar2 = param_2[7];
  switch(uVar2) {
  case 0xffbe:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;
    goto LAB_0014da2f;
  case 0xffbf:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;
    goto LAB_0014da2f;
  case 0xffc0:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;
    goto LAB_0014da2f;
  case 0xffc1:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;
    goto LAB_0014da2f;
  case 0xffc2:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;
    goto LAB_0014da2f;
  case 0xffc3:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;
    goto LAB_0014da2f;
  case 0xffc4:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;
    goto LAB_0014da2f;
  case 0xffc5:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;
LAB_0014da2f:
    uVar13 = param_2[6];
    uVar15 = uVar13 & 4;
    if (uVar15 != 0) goto LAB_0014e24b;
LAB_0014dbca:
    uVar15 = 0;
LAB_0014dbfe:
    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;
    local_228 = (int)(char)(&DAT_00182a60)[local_228];
    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);
    if (iVar14 != 0) goto LAB_0014dce7;
    bVar3 = 10 < local_228;
    goto LAB_0014dd14;
  case 0xffc6:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;
    break;
  case 0xffc7:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;
    break;
  case 0xffc8:
    local_228 = 0x17;
    break;
  case 0xffc9:
    local_228 = 0x18;
    break;
  case 0xffca:
    local_228 = 0x19;
    break;
  case 0xffcb:
    local_228 = 0x1a;
    break;
  case 0xffcc:
    local_228 = 0x1c;
    break;
  case 0xffcd:
    local_228 = 0x1d;
    break;
  case 0xffce:
    local_228 = 0x1f;
    break;
  case 0xffcf:
    local_228 = 0x20;
    break;
  case 0xffd0:
    local_228 = 0x21;
    break;
  case 0xffd1:
    local_228 = 0x22;
    break;
  default:
    uVar13 = param_2[6];
    uVar15 = uVar13 & 4;
    if (uVar15 == 0) {
      if (uVar2 == 0xff95) {
        local_228 = 1;
        goto LAB_0014dbfe;
      }
      if (uVar2 < 0xff96) {
        if (uVar2 == 0xff56) {
          local_228 = 6;
        }
        else if (uVar2 < 0xff57) {
          local_228 = 1;
          if (uVar2 != 0xff50) {
            if (uVar2 != 0xff55) {
              local_228 = 0;
              goto LAB_0014dbca;
            }
            local_228 = 5;
          }
        }
        else {
          local_228 = 4;
          if (uVar2 != 0xff57) {
            if (uVar2 != 0xff63) {
              local_228 = 0;
              goto LAB_0014dbca;
            }
            local_228 = 2;
          }
        }
        goto LAB_0014dbfe;
      }
      if (uVar2 == 0xff9c) {
        local_228 = 4;
        goto LAB_0014dbfe;
      }
      if (uVar2 < 0xff9d) {
        local_228 = 5;
        if (uVar2 != 0xff9a) {
          if (uVar2 != 0xff9b) {
            local_228 = 0;
            goto LAB_0014dbca;
          }
          local_228 = 6;
        }
        goto LAB_0014dbfe;
      }
      local_228 = 3;
      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))
      goto LAB_0014dbfe;
      local_228 = 0;
      goto LAB_0014dbca;
    }
    local_228 = 0;
    goto LAB_0014dbfe;
  }
  uVar13 = param_2[6];
  uVar15 = uVar13 & 4;
LAB_0014e24b:
  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);
  if (iVar14 == 0) {
    bVar3 = 10 < local_228;
    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {
      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;
      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);
      if (local_228 == 3) {
        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);
        iVar16 = 2;
      }
      else {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,
                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));
        iVar16 = 4;
      }
    }
    else {
LAB_0014ddd3:
      local_188 = 0x54535251504f4e4d;
      local_180 = 0x62615a5958575655;
      local_178 = 0x6a69686766656463;
      local_170 = 0x7271706f6e6d6c6b;
      local_168 = 0x7a79787776757473;
      local_160 = 0x7b605f5e5d5c5b40;
      local_158 = 0;
      iVar5 = 8;
      switch(uVar2) {
      case 0xffbf:
        iVar5 = 1;
        break;
      case 0xffc0:
        iVar5 = 2;
        break;
      case 0xffc1:
        iVar5 = 3;
        break;
      case 0xffc2:
        iVar5 = 4;
        break;
      case 0xffc3:
        iVar5 = 5;
        break;
      case 0xffc4:
        iVar5 = 6;
        break;
      case 0xffc5:
        iVar5 = 7;
        break;
      case 0xffc6:
        break;
      case 0xffc7:
        iVar5 = 9;
        break;
      case 0xffc8:
        iVar5 = 10;
        break;
      case 0xffc9:
        iVar5 = 0xb;
        break;
      default:
        iVar5 = 0;
      }
      if ((uVar13 & 1) != 0) {
        iVar5 = iVar5 + 0xc;
      }
      if (uVar15 != 0) {
        iVar5 = iVar5 + 0x18;
      }
      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));
      iVar16 = 4;
    }
LAB_0014d90a:
    iVar5 = iVar16 - iVar6;
    local_228 = 0;
  }
  else {
LAB_0014dce7:
    if (local_228 - 1U < 6) {
      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);
      iVar16 = 3;
      goto LAB_0014d90a;
    }
    bVar3 = 10 < local_228;
    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;
LAB_0014dd14:
    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {
      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);
      if (iVar14 == 0) {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);
        iVar16 = 4;
      }
      else {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);
        iVar16 = 3;
      }
      goto LAB_0014d90a;
    }
    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {
      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);
      iVar16 = 5;
      goto LAB_0014d90a;
    }
    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {
      if (iVar14 == 0) {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);
        iVar16 = 4;
      }
      else {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);
        iVar16 = 3;
      }
      goto LAB_0014d90a;
    }
    if (((local_228 == 1) || (local_228 == 4)) &&
       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {
      puVar9 = &DAT_001827d9;
      if (local_228 != 1) {
        puVar9 = &DAT_001827dd;
      }
      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);
      iVar16 = iVar16 + 1;
      local_228 = 0;
    }
    else {
      if (local_228 != 0) {
        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);
        iVar16 = iVar16 + 1;
        goto LAB_0014d90a;
      }
      switch(param_2[7]) {
      case 0xff51:
      case 0xff96:
        uVar12 = 0x44;
        break;
      case 0xff52:
      case 0xff97:
        uVar12 = 0x41;
        break;
      case 0xff53:
      case 0xff98:
        uVar12 = 0x43;
        break;
      case 0xff54:
      case 0xff99:
        uVar12 = 0x42;
        break;
      default:
        local_228 = local_224;
        goto LAB_0014e155;
      case 0xff58:
      case 0xff9d:
        uVar12 = 0x47;
      }
      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);
      iVar16 = iVar16 + 1;
    }
LAB_0014e155:
    iVar5 = iVar16 - iVar6;
    if (iVar5 < 1) goto LAB_0014cf81;
  }
LAB_0014e163:
  if (bVar4) {
    (&local_148)[iVar16] = '\0';
    if (*(long *)(param_3 + 0xd88) != 0) {
      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);
    }
  }
  else if (*(int *)(param_3 + 0xd10) == 0) {
    if (local_228 == 0) {
LAB_0014e201:
      if (*(long *)(param_3 + 0xd88) != 0) {
        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);
      }
    }
    else if (*(long *)(param_3 + 0xd88) != 0) {
      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);
    }
  }
  else {
LAB_0014d003:
    if (*(long *)(param_3 + 0xd88) != 0) {
      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);
    }
  }
  FUN_001495b0(param_3,0);
  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));
LAB_0014cf81:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return 1;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x1f8
MOV RBX,RSI
MOV RBP,RDX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x1e8],RAX
XOR EAX,EAX
MOV EAX,dword ptr [RSI + 0x14]
MOV dword ptr [RDX + 0x22e0],EAX
CMP dword ptr [RSI],0x9
JZ 0x0014cfaf
MOV R12D,dword ptr [RBX]
CMP R12D,0x8
JZ 0x0014d02d
MOV EAX,0x1
MOV RCX,qword ptr [RSP + 0x1e8]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x0014e379
ADD RSP,0x1f8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EAX,dword ptr [RSI + 0x1c]
SUB EAX,0xffe7
CMP EAX,0x3
JA 0x0014cfcf
MOV EAX,dword ptr [RDX + 0xd68]
TEST EAX,EAX
JS 0x0014cfcf
CMP dword ptr [RDX + 0xd6c],0x1
JG 0x0014cfe1
MOV RDI,qword ptr [RBP + 0x68]
MOV RSI,RBX
CALL 0x001101f0
TEST EAX,EAX
JZ 0x0014cf74
JMP 0x0014cf81
MOV byte ptr [RSP + 0xe0],AL
MOV R14D,dword ptr [RDX + 0xd10]
TEST R14D,R14D
JZ 0x0014e1f4
MOV R14D,0x0
MOV EDX,0x1
MOV RDI,qword ptr [RBP + 0xd88]
TEST RDI,RDI
JZ 0x0014e19a
MOVSXD R14,R14D
LEA RSI,[RSP + R14*0x1 + 0xe0]
MOV ECX,0x1
CALL 0x0011eaac
JMP 0x0014e19a
MOV EAX,dword ptr [RBX + 0x1c]
LEA EDX,[RAX + -0xffe7]
CMP EDX,0x3
JBE 0x0014d06d
MOV EDX,dword ptr [RBX + 0x18]
TEST dword ptr [RBP + 0x2300],EDX
JZ 0x0014d090
MOV EDX,dword ptr [RBP + 0xd68]
CMP EDX,-0x2
JZ 0x0014d090
SUB EAX,0xff95
CMP EAX,0x24
JA 0x0014d086
MOV EAX,EAX
LEA RCX,[0x182a68]
MOVSXD RAX,dword ptr [RCX + RAX*0x4]
ADD RAX,RCX
JMP RAX
MOV dword ptr [RBP + 0xd68],0xffffffff
MOV dword ptr [RBP + 0xd6c],0x0
JMP 0x0014cf81
MOV dword ptr [RBP + 0xd68],0xfffffffe
MOV RDX,qword ptr [RBX + 0x18]
MOV RAX,-0xfffffffc
AND RAX,RDX
MOV RCX,0x3e00000004
CMP RAX,RCX
JZ 0x0014d2f7
MOV RCX,0x3c00000004
CMP RAX,RCX
JZ 0x0014d309
MOV RCX,-0xffffffff
AND RDX,RCX
MOV RCX,0xff5500000001
CMP RDX,RCX
JZ 0x0014d31b
MOV RCX,0xff5500000004
CMP RAX,RCX
JZ 0x0014d342
MOV RCX,0xff5600000001
CMP RDX,RCX
JZ 0x0014d35d
MOV RCX,0xff5600000004
CMP RAX,RCX
JZ 0x0014d382
MOV RAX,0xff6300000001
CMP RDX,RAX
JZ 0x0014d39d
MOV RDI,qword ptr [RBP + 0x22d0]
MOV ESI,0x4e
CALL 0x0011558e
MOV dword ptr [RSP],EAX
MOV RAX,qword ptr [RBP + 0xda0]
CMP dword ptr [RAX + 0x1ac],0x0
JNZ 0x0014d3aa
MOV byte ptr [RSP + 0xe0],0x1b
MOV dword ptr [RSP + 0xc],0x0
CMP dword ptr [RSP],0x0
JZ 0x0014d40f
MOV EAX,dword ptr [RBX + 0x1c]
LEA EDX,[RAX + -0xff95]
CMP EDX,0x8
JBE 0x0014d191
SUB EAX,0xffb1
CMP EAX,0x8
JA 0x0014d40f
MOV RDX,qword ptr [RBX + 0x28]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
MOV RCX,RSI
SUB RCX,0x1
LEA R13,[RSP + 0x20]
MOV R9D,0x1f
MOV R8,R13
MOV ESI,0x0
MOV EDI,0xffff
CALL 0x00155c9b
MOV dword ptr [RSP + 0x14],EAX
MOV qword ptr [RSP + 0x18],R13
LEA RDX,[RSP + 0xe1]
LEA RSI,[RSP + 0x14]
LEA RDI,[RSP + 0x18]
PUSH 0x0
PUSH 0x0
MOV R9D,0x0
MOV R8D,0x37
MOV ECX,0xfe
CALL 0x001125f4
ADD EAX,0x1
CDQE
MOV byte ptr [RSP + RAX*0x1 + 0xf0],0x0
ADD RSP,0x10
CMP byte ptr [RSP + 0xe1],0x0
JZ 0x0014d428
MOV byte ptr [RSP + 0x1df],0x0
LEA RDI,[RSP + 0xe0]
MOV RCX,-0x1
MOV EAX,0x0
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
LEA R13D,[RSI + -0x1]
MOV dword ptr [RSP + 0x4],0x0
MOV EAX,dword ptr [RBX + 0x18]
TEST dword ptr [RBP + 0x2300],EAX
JZ 0x0014d457
MOV R14D,0x0
CMP R13D,0x1
JNZ 0x0014d45d
CMP byte ptr [RSP + 0xe1],0x0
JZ 0x0014e347
MOV R13D,0x0
MOV R14D,0x0
JMP 0x0014d51c
MOV R12D,0x7
JMP 0x0014d2d8
MOV R12D,0x6
JMP 0x0014d2d8
MOV R12D,0x5
JMP 0x0014d2d8
MOV R12D,0x4
JMP 0x0014d2d8
MOV R12D,0x3
JMP 0x0014d2d8
MOV R12D,0x2
JMP 0x0014d2d8
MOV R12D,0x1
JMP 0x0014d2d8
MOV R12D,0x0
JMP 0x0014d2d8
MOV R12D,0x9
CMP EDX,-0x1
JZ 0x0014d2e4
LEA EAX,[RDX + RDX*0x4]
LEA R12D,[R12 + RAX*0x2]
MOV dword ptr [RBP + 0xd68],R12D
ADD dword ptr [RBP + 0xd6c],0x1
JMP 0x0014cf81
MOV ESI,0x1
MOV RDI,RBP
CALL 0x0014cd38
JMP 0x0014cf81
MOV ESI,0xffffffff
MOV RDI,RBP
CALL 0x0014cd38
JMP 0x0014cf81
MOV EAX,dword ptr [RBP + 0xd58]
MOV EDX,EAX
SHR EDX,0x1f
ADD EDX,EAX
SAR EDX,0x1
NEG EDX
MOV RDI,qword ptr [RBP + 0xda0]
MOV ESI,0x0
CALL 0x001371ed
JMP 0x0014cf81
MOV RDI,qword ptr [RBP + 0xda0]
MOV EDX,0xffffffff
MOV ESI,0x0
CALL 0x001371ed
JMP 0x0014cf81
MOV EAX,dword ptr [RBP + 0xd58]
MOV EDX,EAX
SHR EDX,0x1f
ADD EDX,EAX
SAR EDX,0x1
MOV RDI,qword ptr [RBP + 0xda0]
MOV ESI,0x0
CALL 0x001371ed
JMP 0x0014cf81
MOV RDI,qword ptr [RBP + 0xda0]
MOV EDX,0x1
MOV ESI,0x0
CALL 0x001371ed
JMP 0x0014cf81
MOV RDI,RBP
CALL 0x0014b0b2
JMP 0x0014cf81
MOV RDI,qword ptr [RBP + 0x22d0]
MOV ESI,0x43
CALL 0x0011558e
TEST EAX,EAX
JNZ 0x0014d15b
MOV byte ptr [RSP + 0xe0],0x1b
MOV EAX,dword ptr [RBX + 0x1c]
SUB EAX,0xff7f
CMP EAX,0x3a
JA 0x0014d402
MOV RDX,0x7ffd801ffc04001
BT RDX,RAX
JNC 0x0014d3f5
MOV dword ptr [RSP + 0xc],0x1
JMP 0x0014d191
MOV dword ptr [RSP + 0xc],0x1
JMP 0x0014d16b
MOV dword ptr [RSP + 0xc],0x1
JMP 0x0014d16b
MOV RDI,qword ptr [RBP + 0x68]
MOV RSI,RBX
CALL 0x001101f0
TEST EAX,EAX
JZ 0x0014d191
JMP 0x0014cf81
MOV EDI,dword ptr [RBX + 0x1c]
CALL 0x001563f9
TEST EAX,EAX
JS 0x0014d224
MOV dword ptr [RSP + 0x20],0x1b
MOV dword ptr [RSP + 0x24],EAX
MOV dword ptr [RSP + 0x4],0x1
MOV R13D,0x2
JMP 0x0014d254
MOV R14D,0x1
MOVZX EDX,byte ptr [RSP + 0xe1]
TEST DL,DL
JNZ 0x0014d50e
MOV RDX,-0xfffffffc
AND RDX,qword ptr [RBX + 0x18]
MOV RCX,0x6000000004
CMP RDX,RCX
JZ 0x0014d4ea
TEST AL,0x4
JZ 0x0014d51c
CMP R13D,0x2
JNZ 0x0014d51c
MOVZX EDX,byte ptr [RSP + 0xe1]
MOV ECX,EDX
CMP DL,0x32
JZ 0x0014d5f7
CMP DL,0x20
JZ 0x0014d5f7
CMP DL,0x38
JZ 0x0014d60a
CMP DL,0x2f
JZ 0x0014d61d
SUB ECX,0x40
MOV R13D,0x2
CMP CL,0x3e
JA 0x0014d51c
AND EDX,0x1f
MOV byte ptr [RSP + 0xe1],DL
JMP 0x0014d51c
MOV R14D,0x0
MOV byte ptr [RSP + 0xe1],0x1c
TEST AL,0x4
JNZ 0x0014e33a
MOV RCX,qword ptr [RBX + 0x18]
MOV dword ptr [RSP + 0x4],0x0
MOV R13D,0x2
JMP 0x0014d540
TEST AL,0x4
JZ 0x0014d51c
CMP R13D,0x2
JZ 0x0014d5d9
MOV RCX,qword ptr [RBX + 0x18]
MOV RDX,-0xfffffffc
AND RDX,RCX
MOV RSI,0xff6b00000004
CMP RDX,RSI
JZ 0x0014d630
MOV EDX,dword ptr [RBX + 0x1c]
CMP EDX,0xff0d
JZ 0x0014d654
CMP byte ptr [RSP + 0xe1],0x0
JNZ 0x0014e32f
LEA ESI,[RDX + -0x20]
TEST ESI,0xffffffdf
JZ 0x0014d56d
CMP EDX,0x32
JNZ 0x0014d58a
AND EAX,0x5
CMP EAX,0x4
MOV EDX,0x0
CMOVNZ EDX,dword ptr [RSP + 0x4]
MOV dword ptr [RSP + 0x4],EDX
MOV EAX,0x2
CMOVZ R13D,EAX
MOV RAX,-0xfffffffb
AND RAX,RCX
MOV RDX,0x2000000005
MOV R15D,0x0
CMP RAX,RDX
JNZ 0x0014d670
MOV byte ptr [RSP + 0xe1],0xa0
MOV dword ptr [RSP + 0x8],0x1
MOV dword ptr [RSP + 0x4],0x0
MOV R15D,0x0
MOV R13D,0x2
JMP 0x0014d698
MOV ECX,EDX
LEA ESI,[RDX + -0x33]
CMP SIL,0x4
JA 0x0014d4a6
SUB EDX,0x18
MOV byte ptr [RSP + 0xe1],DL
JMP 0x0014d51c
MOV byte ptr [RSP + 0xe1],0x0
MOV R13D,0x2
JMP 0x0014d51c
MOV byte ptr [RSP + 0xe1],0x7f
MOV R13D,0x2
JMP 0x0014d51c
MOV byte ptr [RSP + 0xe1],0x1f
MOV R13D,0x2
JMP 0x0014d51c
MOV RAX,qword ptr [RBP + 0xd90]
TEST RAX,RAX
JZ 0x0014cf81
MOV RDI,qword ptr [RBP + 0xd98]
MOV ESI,0x1
CALL qword ptr [RAX + 0x30]
JMP 0x0014cf81
MOV byte ptr [RSP + 0xe1],0xd
MOV R15D,0x1
MOV dword ptr [RSP + 0x4],0x0
MOV R13D,0x2
MOV RAX,-0xffffffff
AND RCX,RAX
MOV dword ptr [RSP + 0x8],0x37
MOV RAX,0xff0800000000
CMP RCX,RAX
JZ 0x0014d740
MOV RAX,-0xffffffff
AND RAX,qword ptr [RBX + 0x18]
MOV RDX,0xff0800000001
CMP RAX,RDX
JZ 0x0014d784
MOV EAX,dword ptr [RBX + 0x1c]
CMP EAX,0xfe20
JZ 0x0014d7c0
MOV RDX,-0xffffffff
AND RDX,qword ptr [RBX + 0x18]
MOV RCX,0xff0900000001
CMP RDX,RCX
JZ 0x0014d7c0
CMP R13D,0x1
JG 0x0014d7d9
CMP EAX,0xff09
JNZ 0x0014d7d9
MOV byte ptr [RSP + 0xe1],0x9
MOV R13D,0x2
MOV RDI,qword ptr [RBP + 0x22d0]
MOV ESI,0x41
CALL 0x0011558e
MOV EDX,dword ptr [RBX + 0x1c]
LEA ECX,[RDX + -0xffbe]
CMP ECX,0x13
JA 0x0014db6d
MOV ECX,ECX
LEA RSI,[0x182afc]
MOVSXD RCX,dword ptr [RSI + RCX*0x4]
ADD RCX,RSI
JMP RCX
MOV RDI,qword ptr [RBP + 0x22d0]
MOV ESI,0x3f
CALL 0x0011558e
CMP EAX,0x1
SBB EAX,EAX
AND EAX,0xffffff89
ADD EAX,0x7f
MOV byte ptr [RSP + 0xe1],AL
MOV dword ptr [RSP + 0x8],0x37
MOV dword ptr [RSP + 0x4],0x0
MOV R15D,0x1
MOV R13D,0x2
JMP 0x0014d698
MOV RDI,qword ptr [RBP + 0x22d0]
MOV ESI,0x3f
CALL 0x0011558e
CMP EAX,0x1
SBB EAX,EAX
AND EAX,0x77
ADD EAX,0x8
MOV byte ptr [RSP + 0xe1],AL
MOV dword ptr [RSP + 0x4],0x0
MOV R15D,0x1
MOV R13D,0x2
JMP 0x0014d6b9
MOV dword ptr [RSP + 0xe1],0x5a5b1b
MOV dword ptr [RSP + 0x4],0x0
MOV R13D,0x4
CMP dword ptr [RSP],0x0
JZ 0x0014d89c
LEA EDX,[RAX + -0xff95]
CMP EDX,0x24
JA 0x0014d89c
MOV EDX,EDX
LEA RCX,[0x182b4c]
MOVSXD RDX,dword ptr [RCX + RDX*0x4]
ADD RDX,RCX
JMP RDX
LEA RDX,[0x1827d5]
MOV EAX,dword ptr [RBX + 0x18]
TEST AL,0x4
JZ 0x0014d87f
MOVZX EAX,byte ptr [RDX + 0x2]
MOV byte ptr [RSP + 0xe1],AL
MOV EDX,0x2
SUB EDX,R14D
MOV dword ptr [RSP],0x0
MOV R13D,0x2
JMP 0x0014e163
LEA RDX,[0x1827c5]
JMP 0x0014d80b
LEA RDX,[0x1827c9]
JMP 0x0014d80b
LEA RDX,[0x180530]
JMP 0x0014d80b
LEA RDX,[0x1827cd]
JMP 0x0014d80b
LEA RDX,[0x1827d1]
JMP 0x0014d80b
LEA RDX,[0x1827bd]
JMP 0x0014d80b
LEA RDX,[0x1827b9]
JMP 0x0014d80b
LEA RDX,[0x1827c1]
JMP 0x0014d80b
TEST AL,0x1
JZ 0x0014d890
MOVZX EAX,byte ptr [RDX + 0x1]
MOV byte ptr [RSP + 0xe1],AL
JMP 0x0014d81d
MOVZX EAX,byte ptr [RDX]
MOV byte ptr [RSP + 0xe1],AL
JMP 0x0014d81d
CMP dword ptr [RSP + 0xc],0x0
JZ 0x0014d70b
SUB EAX,0xff7f
CMP EAX,0x3a
JA 0x0014d70b
MOV EAX,EAX
LEA RDX,[0x182be0]
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
MOV R8D,0x52
MOV RAX,qword ptr [RBP + 0xda0]
CMP dword ptr [RAX + 0x1b0],0x0
JZ 0x0014d978
LEA RDI,[RSP + 0xe1]
LEA RCX,[0x17f385]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x3
MOV EDX,R13D
SUB EDX,R14D
MOV dword ptr [RSP],0x0
JMP 0x0014e163
MOV R8D,0x79
JMP 0x0014d964
MOV RDI,qword ptr [RBP + 0x22d0]
MOV ESI,0x41
CALL 0x0011558e
CMP EAX,0x2
JZ 0x0014d94c
MOV EAX,dword ptr [RBX + 0x18]
AND EAX,0x1
CMP EAX,0x1
SBB R8D,R8D
ADD R8D,0x6d
JMP 0x0014d964
MOV EAX,dword ptr [RBX + 0x18]
AND EAX,0x1
CMP EAX,0x1
SBB R8D,R8D
ADD R8D,0x6c
JMP 0x0014d964
MOV R8D,0x77
MOV RAX,qword ptr [RBP + 0xda0]
CMP dword ptr [RAX + 0x1b0],0x0
JNZ 0x0014e2eb
LEA RDI,[RSP + 0xe1]
LEA RCX,[0x17f389]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x4
JMP 0x0014d90a
MOV R8D,0x76
JMP 0x0014d964
MOV R8D,0x75
JMP 0x0014d964
MOV R8D,0x74
JMP 0x0014d964
MOV R8D,0x73
JMP 0x0014d964
MOV R8D,0x72
JMP 0x0014d964
MOV R8D,0x71
JMP 0x0014d964
MOV R8D,0x70
JMP 0x0014d964
MOV R8D,0x4d
JMP 0x0014d964
MOV RAX,qword ptr [RBP + 0xda0]
CMP dword ptr [RAX + 0x1b0],0x0
JZ 0x0014da04
MOV R8D,0x50
JMP 0x0014d8e1
MOV R8D,0x50
JMP 0x0014d978
MOV dword ptr [RSP],0x18
JMP 0x0014e241
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff4
ADD ESI,0x17
MOV dword ptr [RSP],ESI
MOV ESI,dword ptr [RBX + 0x18]
MOV R9D,ESI
AND R9D,0x4
JNZ 0x0014e24b
JMP 0x0014dbca
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff4
ADD ESI,0x18
MOV dword ptr [RSP],ESI
JMP 0x0014da2f
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff4
ADD ESI,0x19
MOV dword ptr [RSP],ESI
JMP 0x0014da2f
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff4
ADD ESI,0x1a
MOV dword ptr [RSP],ESI
JMP 0x0014da2f
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff3
ADD ESI,0x1c
MOV dword ptr [RSP],ESI
JMP 0x0014da2f
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff4
ADD ESI,0x1d
MOV dword ptr [RSP],ESI
JMP 0x0014da2f
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff3
ADD ESI,0x1f
MOV dword ptr [RSP],ESI
JMP 0x0014da2f
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff3
ADD ESI,0x20
MOV dword ptr [RSP],ESI
JMP 0x0014da2f
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff3
ADD ESI,0x21
MOV dword ptr [RSP],ESI
JMP 0x0014e241
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x1
CMP ECX,0x1
SBB ESI,ESI
AND ESI,0xfffffff3
ADD ESI,0x22
MOV dword ptr [RSP],ESI
JMP 0x0014e241
MOV dword ptr [RSP],0x1a
JMP 0x0014e241
MOV dword ptr [RSP],0x1c
JMP 0x0014e241
MOV dword ptr [RSP],0x1d
JMP 0x0014e241
MOV dword ptr [RSP],0x1f
JMP 0x0014e241
MOV dword ptr [RSP],0x20
JMP 0x0014e241
MOV dword ptr [RSP],0x21
JMP 0x0014e241
MOV dword ptr [RSP],0x22
JMP 0x0014e241
MOV ESI,dword ptr [RBX + 0x18]
MOV R9D,ESI
AND R9D,0x4
JNZ 0x0014dcb7
CMP EDX,0xff95
JZ 0x0014dcc3
JBE 0x0014dbd2
CMP EDX,0xff9c
JZ 0x0014dcdb
JBE 0x0014dc84
MOV dword ptr [RSP],0x3
CMP EDX,0xff9f
JZ 0x0014dbfe
CMP EDX,0xffff
JZ 0x0014dbfe
MOV dword ptr [RSP],0x2
CMP EDX,0xff9e
JZ 0x0014dbfe
MOV dword ptr [RSP],0x0
MOV R9D,0x0
JMP 0x0014dbfe
CMP EDX,0xff56
JZ 0x0014dccf
JA 0x0014dc58
MOV dword ptr [RSP],0x1
CMP EDX,0xff50
JZ 0x0014dbfe
CMP EDX,0xff55
JNZ 0x0014dc4c
MOV dword ptr [RSP],0x5
CMP EAX,0x3
JNZ 0x0014e24b
MOV ECX,dword ptr [RSP]
CMP ECX,0x6
JG 0x0014e24b
MOVSXD RDI,ECX
LEA RCX,[0x182a60]
MOVZX ECX,byte ptr [RCX + RDI*0x1]
MOVSX EDI,CL
MOV dword ptr [RSP],EDI
MOV RDI,qword ptr [RBP + 0xda0]
MOV EDI,dword ptr [RDI + 0x1b0]
TEST EDI,EDI
JNZ 0x0014dce7
CMP dword ptr [RSP],0xa
SETG R8B
MOVSX ECX,CL
JMP 0x0014dd14
MOV dword ptr [RSP],0x0
JMP 0x0014dbca
MOV dword ptr [RSP],0x4
CMP EDX,0xff57
JZ 0x0014dbfe
CMP EDX,0xff63
JNZ 0x0014dc78
MOV dword ptr [RSP],0x2
JMP 0x0014dbfe
MOV dword ptr [RSP],0x0
JMP 0x0014dbca
MOV dword ptr [RSP],0x5
CMP EDX,0xff9a
JZ 0x0014dbfe
CMP EDX,0xff9b
JNZ 0x0014dcab
MOV dword ptr [RSP],0x6
JMP 0x0014dbfe
MOV dword ptr [RSP],0x0
JMP 0x0014dbca
MOV dword ptr [RSP],0x0
JMP 0x0014dbfe
MOV dword ptr [RSP],0x1
JMP 0x0014dbfe
MOV dword ptr [RSP],0x6
JMP 0x0014dbfe
MOV dword ptr [RSP],0x4
JMP 0x0014dbfe
MOV ECX,dword ptr [RSP]
SUB ECX,0x1
CMP ECX,0x5
JBE 0x0014dd95
MOV ECX,dword ptr [RSP]
CMP ECX,0xa
SETG R8B
SUB ECX,0xb
CMP ECX,0x17
JA 0x0014dd11
CMP EAX,0x5
JZ 0x0014ddd3
MOV ECX,dword ptr [RSP]
CMP EAX,0x4
JZ 0x0014dd1d
TEST EDI,EDI
JZ 0x0014dd29
SUB ECX,0xb
CMP ECX,0xd
JBE 0x0014df60
CMP EAX,0x1
SETZ DL
TEST DL,R8B
JZ 0x0014dd3e
CMP dword ptr [RSP],0xf
JLE 0x0014dfeb
CMP EAX,0x2
SETZ AL
TEST AL,R8B
JZ 0x0014dd53
CMP dword ptr [RSP],0xe
JLE 0x0014e020
MOV EAX,dword ptr [RSP]
CMP EAX,0x1
JZ 0x0014e08e
CMP EAX,0x4
JZ 0x0014e08e
CMP dword ptr [RSP],0x0
JNZ 0x0014e0e6
MOV EAX,dword ptr [RBX + 0x1c]
SUB EAX,0xff51
CMP EAX,0x4c
JA 0x0014e1b8
MOV EAX,EAX
LEA RDX,[0x182ccc]
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
MOVSXD RDX,dword ptr [RSP]
LEA RDI,[RSP + 0xe1]
LEA RAX,[0x1827f2]
MOVSX R8D,byte ptr [RAX + RDX*0x1]
LEA RCX,[0x17f385]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x3
JMP 0x0014d90a
MOV RCX,0x54535251504f4e4d
MOV RBX,0x62615a5958575655
MOV qword ptr [RSP + 0xa0],RCX
MOV qword ptr [RSP + 0xa8],RBX
MOV RCX,0x6a69686766656463
MOV RBX,0x7271706f6e6d6c6b
MOV qword ptr [RSP + 0xb0],RCX
MOV qword ptr [RSP + 0xb8],RBX
MOV RCX,0x7a79787776757473
MOV RBX,0x7b605f5e5d5c5b40
MOV qword ptr [RSP + 0xc0],RCX
MOV qword ptr [RSP + 0xc8],RBX
MOV byte ptr [RSP + 0xd0],0x0
SUB EDX,0xffbf
CMP EDX,0xa
JA 0x0014df16
MOV EDX,EDX
LEA RCX,[0x182e00]
MOVSXD RAX,dword ptr [RCX + RDX*0x4]
ADD RAX,RCX
JMP RAX
MOV R12D,0x1
AND ESI,0x1
LEA EAX,[R12 + 0xc]
TEST ESI,ESI
CMOVNZ R12D,EAX
LEA EAX,[R12 + 0x18]
TEST R9D,R9D
CMOVNZ R12D,EAX
MOVSXD R12,R12D
LEA RDI,[RSP + 0xe1]
MOVSX R8D,byte ptr [RSP + R12*0x1 + 0xa0]
LEA RCX,[0x17f38e]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x4
JMP 0x0014d90a
MOV R12D,0x2
JMP 0x0014de6e
MOV R12D,0x3
JMP 0x0014de6e
MOV R12D,0x4
JMP 0x0014de6e
MOV R12D,0x5
JMP 0x0014de6e
MOV R12D,0x6
JMP 0x0014de6e
MOV R12D,0x7
JMP 0x0014de6e
MOV R12D,0x9
JMP 0x0014de6e
MOV R12D,0xa
JMP 0x0014de6e
MOV R12D,0xb
JMP 0x0014de6e
MOV R12D,0x0
JMP 0x0014de6e
MOV EAX,dword ptr [RSP]
SUB EAX,0x1
CDQE
LEA RDI,[RSP + 0xe1]
MOVSX R8D,byte ptr [RSP + RAX*0x1 + 0xa0]
LEA RCX,[0x17f38e]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x4
JMP 0x0014d90a
MOV ESI,dword ptr [RSP]
CMP ESI,0xf
SETG AL
MOVZX EAX,AL
CMP ESI,0x15
SETG DL
MOVZX EDX,DL
ADD EAX,EDX
TEST EDI,EDI
JZ 0x0014dfb2
ADD ESI,0x45
MOV R8D,ESI
LEA RDI,[RSP + 0xe1]
SUB R8D,EAX
LEA RCX,[0x17f385]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x3
JMP 0x0014d90a
MOV R8D,dword ptr [RSP]
ADD R8D,0x45
LEA RDI,[RSP + 0xe1]
SUB R8D,EAX
LEA RCX,[0x17f389]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x4
JMP 0x0014d90a
LEA RDI,[RSP + 0xe1]
MOV EAX,dword ptr [RSP]
LEA R8D,[RAX + 0x36]
LEA RCX,[0x1827e1]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x5
JMP 0x0014d90a
TEST EDI,EDI
JZ 0x0014e059
LEA RDI,[RSP + 0xe1]
MOV EAX,dword ptr [RSP]
LEA R8D,[RAX + 0x45]
LEA RCX,[0x17f385]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x3
JMP 0x0014d90a
LEA RDI,[RSP + 0xe1]
MOV EAX,dword ptr [RSP]
LEA R8D,[RAX + 0x45]
LEA RCX,[0x17f389]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x4
JMP 0x0014d90a
MOV RDI,qword ptr [RBP + 0x22d0]
MOV ESI,0x40
CALL 0x0011558e
TEST EAX,EAX
JZ 0x0014dd68
CMP dword ptr [RSP],0x1
LEA RCX,[0x1827d9]
LEA RAX,[0x1827dd]
CMOVNZ RCX,RAX
LEA RDI,[RSP + 0xe1]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
LEA R13D,[RAX + 0x1]
MOV dword ptr [RSP],0x0
JMP 0x0014e155
LEA RDI,[RSP + 0xe1]
MOV R8D,dword ptr [RSP]
LEA RCX,[0x1827e7]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
LEA R13D,[RAX + 0x1]
JMP 0x0014d90a
MOV EDX,0x44
JMP 0x0014e137
MOV EDX,0x43
JMP 0x0014e137
MOV EDX,0x42
JMP 0x0014e137
MOV EDX,0x41
JMP 0x0014e137
MOV EDX,0x47
MOV ECX,dword ptr [RBX + 0x18]
AND ECX,0x4
MOV RSI,qword ptr [RBP + 0xda0]
LEA RDI,[RSP + 0xe1]
CALL 0x00137d44
LEA R13D,[RAX + 0x1]
MOV EDX,R13D
SUB EDX,R14D
TEST EDX,EDX
JLE 0x0014cf81
TEST R15D,R15D
JZ 0x0014e1c1
MOVSXD R13,R13D
MOV byte ptr [RSP + R13*0x1 + 0xe0],0x0
MOV RDI,qword ptr [RBP + 0xd88]
TEST RDI,RDI
JZ 0x0014e19a
MOVSXD R14,R14D
LEA RSI,[RSP + R14*0x1 + 0xe0]
MOV ECX,0x1
MOV EDX,0xfffffffe
CALL 0x0011eaac
MOV ESI,0x0
MOV RDI,RBP
CALL 0x001495b0
MOV RDI,qword ptr [RBP + 0xda0]
CALL 0x0013112b
JMP 0x0014cf81
MOV EAX,dword ptr [RSP + 0x4]
MOV dword ptr [RSP],EAX
JMP 0x0014e155
CMP dword ptr [RBP + 0xd10],0x0
JNZ 0x0014d003
CMP dword ptr [RSP],0x0
JZ 0x0014e201
MOV RDI,qword ptr [RBP + 0xd88]
TEST RDI,RDI
JZ 0x0014e19a
MOVSXD R14,R14D
LEA RSI,[RSP + R14*0x4 + 0x20]
MOV ECX,0x1
CALL 0x0011f2ad
JMP 0x0014e19a
MOV dword ptr [RSP + 0x8],0x1
MOV EDX,0x1
MOV RDI,qword ptr [RBP + 0xd88]
TEST RDI,RDI
JZ 0x0014e19a
MOVSXD R14,R14D
LEA RAX,[RSP + R14*0x1 + 0xe0]
MOV R8D,0x1
MOV ECX,EDX
MOV RDX,RAX
MOV ESI,dword ptr [RSP + 0x8]
CALL 0x0011f45f
JMP 0x0014e19a
MOV dword ptr [RSP],0x17
JMP 0x0014e241
MOV dword ptr [RSP],0x19
MOV ESI,dword ptr [RBX + 0x18]
MOV R9D,ESI
AND R9D,0x4
MOV RCX,qword ptr [RBP + 0xda0]
MOV EDI,dword ptr [RCX + 0x1b0]
TEST EDI,EDI
JNZ 0x0014dce7
CMP EAX,0x5
SETZ R10B
MOV ECX,dword ptr [RSP]
CMP ECX,0xa
SETG R8B
SUB ECX,0xb
CMP ECX,0x17
JA 0x0014e282
TEST R10B,R10B
JNZ 0x0014ddd3
MOV ESI,dword ptr [RSP]
MOV ECX,ESI
LEA EDX,[RSI + -0x1]
CMP EDX,0x5
JA 0x0014dd14
TEST R10B,R10B
JZ 0x0014dd14
MOV dword ptr [RSP + 0xa0],0x462e4c48
MOV word ptr [RSP + 0xa4],0x4749
MOV byte ptr [RSP + 0xa6],0x0
CMP ESI,0x3
JNZ 0x0014df21
MOV byte ptr [RSP + 0xe1],0x7f
MOV R13D,0x2
JMP 0x0014d90a
MOV R8D,0x53
JMP 0x0014d8cd
MOV R8D,0x51
JMP 0x0014d8cd
LEA RDI,[RSP + 0xe1]
LEA RCX,[0x1827ed]
MOV EDX,0xff
MOV ESI,0x1
MOV EAX,0x0
CALL 0x001108e0
MOV R13D,0x4
JMP 0x0014d90a
MOV R8D,0x6e
JMP 0x0014d964
MOV R8D,0x78
JMP 0x0014d964
MOV R15D,0x0
JMP 0x0014d670
MOV dword ptr [RSP + 0x4],0x0
JMP 0x0014d49c
MOV RDX,-0xfffffffc
AND RDX,qword ptr [RBX + 0x18]
MOV RCX,0x6000000004
CMP RDX,RCX
JZ 0x0014d4e4
MOV R13D,0x0
MOV R14D,0x0
JMP 0x0014d51c
CALL 0x001111e0
(translation_unit "undefined8 FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)\n\n{\n  char cVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  int iVar6;\n  ulong uVar7;\n  long lVar8;\n  undefined *puVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  int local_228;\n  int local_224;\n  undefined4 local_220;\n  undefined4 local_214;\n  int *local_210;\n  int local_208 [32];\n  undefined8 local_188;\n  undefined8 local_180;\n  undefined8 local_178;\n  undefined8 local_170;\n  undefined8 local_168;\n  undefined8 local_160;\n  undefined1 local_158;\n  char local_148;\n  uint local_147 [63];\n  undefined1 local_49;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  *(int *)(param_3 + 0x22e0) = param_2[5];\n  if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;\n  if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;\n  if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;\n  if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }\n  uVar7 = 0xffffffffffffffff;\n  pcVar11 = *(char **)(param_2 + 10);\n  do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');\n  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);\n  local_210 = local_208;\n  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);\n  (&local_148)[iVar6 + 1] = '\0';\n  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }\n  uVar2 = param_2[6];\n  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }\n  iVar6 = 0;\n  if (iVar16 != 1) goto LAB_0014d45d;\n  if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  iVar14 = param_2[7];\n  if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }\n  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }\n  iVar14 = param_2[7];\n  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  local_147[0] = 0x5a5b1b;\n  local_224 = 0;\n  iVar16 = 4;\nLAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n  uVar2 = param_2[7];\n  switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar13 = param_2[6];\n  uVar15 = uVar13 & 4;\nLAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n  if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }\n  FUN_001495b0(param_3,0);\n  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));\nLAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)\n\n{\n  char cVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  int iVar6;\n  ulong uVar7;\n  long lVar8;\n  undefined *puVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  int local_228;\n  int local_224;\n  undefined4 local_220;\n  undefined4 local_214;\n  int *local_210;\n  int local_208 [32];\n  undefined8 local_188;\n  undefined8 local_180;\n  undefined8 local_178;\n  undefined8 local_170;\n  undefined8 local_168;\n  undefined8 local_160;\n  undefined1 local_158;\n  char local_148;\n  uint local_147 [63];\n  undefined1 local_49;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  *(int *)(param_3 + 0x22e0) = param_2[5];\n  if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;\n  if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;\n  if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;\n  if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }\n  uVar7 = 0xffffffffffffffff;\n  pcVar11 = *(char **)(param_2 + 10);\n  do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');\n  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);\n  local_210 = local_208;\n  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);\n  (&local_148)[iVar6 + 1] = '\0';\n  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }\n  uVar2 = param_2[6];\n  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }\n  iVar6 = 0;\n  if (iVar16 != 1) goto LAB_0014d45d;\n  if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  iVar14 = param_2[7];\n  if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }\n  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }\n  iVar14 = param_2[7];\n  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  local_147[0] = 0x5a5b1b;\n  local_224 = 0;\n  iVar16 = 4;\nLAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n  uVar2 = param_2[7];\n  switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar13 = param_2[6];\n  uVar15 = uVar13 & 4;\nLAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n  if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }\n  FUN_001495b0(param_3,0);\n  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));\nLAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)" identifier (parameter_list "(undefined8 param_1,int *param_2,long param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  int iVar6;\n  ulong uVar7;\n  long lVar8;\n  undefined *puVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  int local_228;\n  int local_224;\n  undefined4 local_220;\n  undefined4 local_214;\n  int *local_210;\n  int local_208 [32];\n  undefined8 local_188;\n  undefined8 local_180;\n  undefined8 local_178;\n  undefined8 local_170;\n  undefined8 local_168;\n  undefined8 local_160;\n  undefined1 local_158;\n  char local_148;\n  uint local_147 [63];\n  undefined1 local_49;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  *(int *)(param_3 + 0x22e0) = param_2[5];\n  if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;\n  if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;\n  if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;\n  if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }\n  uVar7 = 0xffffffffffffffff;\n  pcVar11 = *(char **)(param_2 + 10);\n  do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');\n  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);\n  local_210 = local_208;\n  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);\n  (&local_148)[iVar6 + 1] = '\0';\n  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }\n  uVar2 = param_2[6];\n  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }\n  iVar6 = 0;\n  if (iVar16 != 1) goto LAB_0014d45d;\n  if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  iVar14 = param_2[7];\n  if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }\n  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }\n  iVar14 = param_2[7];\n  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  local_147[0] = 0x5a5b1b;\n  local_224 = 0;\n  iVar16 = 4;\nLAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n  uVar2 = param_2[7];\n  switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar13 = param_2[6];\n  uVar15 = uVar13 & 4;\nLAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n  if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }\n  FUN_001495b0(param_3,0);\n  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));\nLAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int local_228;" primitive_type identifier ;) (declaration "int local_224;" primitive_type identifier ;) (declaration "undefined4 local_220;" type_identifier identifier ;) (declaration "undefined4 local_214;" type_identifier identifier ;) (declaration "int *local_210;" primitive_type (pointer_declarator "*local_210" * identifier) ;) (declaration "int local_208 [32];" primitive_type (array_declarator "local_208 [32]" identifier [ number_literal ]) ;) (declaration "undefined8 local_188;" type_identifier identifier ;) (declaration "undefined8 local_180;" type_identifier identifier ;) (declaration "undefined8 local_178;" type_identifier identifier ;) (declaration "undefined8 local_170;" type_identifier identifier ;) (declaration "undefined8 local_168;" type_identifier identifier ;) (declaration "undefined8 local_160;" type_identifier identifier ;) (declaration "undefined1 local_158;" type_identifier identifier ;) (declaration "char local_148;" primitive_type identifier ;) (declaration "uint local_147 [63];" type_identifier (array_declarator "local_147 [63]" identifier [ number_literal ]) ;) (declaration "undefined1 local_49;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_3 + 0x22e0) = param_2[5];" (assignment_expression "*(int *)(param_3 + 0x22e0) = param_2[5]" (pointer_expression "*(int *)(param_3 + 0x22e0)" * (cast_expression "(int *)(param_3 + 0x22e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22e0)" ( (binary_expression "param_3 + 0x22e0" identifier + number_literal) )))) = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (if_statement "if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }" if (parenthesized_expression "(*param_2 == 9)" ( (binary_expression "*param_2 == 9" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }" { (if_statement "if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }" if (parenthesized_expression "(((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2))" ( (binary_expression "((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)" (parenthesized_expression "((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0))" ( (binary_expression "(3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)" (parenthesized_expression "(3 < param_2[7] - 0xffe7U)" ( (binary_expression "3 < param_2[7] - 0xffe7U" number_literal < (binary_expression "param_2[7] - 0xffe7U" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal)) )) || (parenthesized_expression "(*(int *)(param_3 + 0xd68) < 0)" ( (binary_expression "*(int *)(param_3 + 0xd68) < 0" (pointer_expression "*(int *)(param_3 + 0xd68)" * (cast_expression "(int *)(param_3 + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))) < number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_3 + 0xd6c) < 2)" ( (binary_expression "*(int *)(param_3 + 0xd6c) < 2" (pointer_expression "*(int *)(param_3 + 0xd6c)" * (cast_expression "(int *)(param_3 + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd6c)" ( (binary_expression "param_3 + 0xd6c" identifier + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }" { (expression_statement "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);" (assignment_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" identifier = (call_expression "gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x68),param_2)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x68)" * (cast_expression "(undefined8 *)(param_3 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x68)" ( (binary_expression "param_3 + 0x68" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar6 != 0) goto LAB_0014cf81;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) (goto_statement "goto LAB_0014cf74;" goto statement_identifier ;) })) (expression_statement "local_148 = (char)*(int *)(param_3 + 0xd68);" (assignment_expression "local_148 = (char)*(int *)(param_3 + 0xd68)" identifier = (cast_expression "(char)*(int *)(param_3 + 0xd68)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(int *)(param_3 + 0xd68)" * (cast_expression "(int *)(param_3 + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0xd10) != 0)" ( (binary_expression "*(int *)(param_3 + 0xd10) != 0" (pointer_expression "*(int *)(param_3 + 0xd10)" * (cast_expression "(int *)(param_3 + 0xd10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd10)" ( (binary_expression "param_3 + 0xd10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014d003;" goto statement_identifier ;) })) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014e201;" goto statement_identifier ;) })) (labeled_statement "LAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;" statement_identifier : (if_statement "if (*param_2 != 8) goto LAB_0014cf81;" if (parenthesized_expression "(*param_2 != 8)" ( (binary_expression "*param_2 != 8" (pointer_expression "*param_2" * identifier) != number_literal) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;))) (if_statement "if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(param_2[7] - 0xffe7U < 4)" ( (binary_expression "param_2[7] - 0xffe7U < 4" (binary_expression "param_2[7] - 0xffe7U" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }" { (expression_statement "*(undefined4 *)(param_3 + 0xd68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_3 + 0xd68) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_3 + 0xd68)" * (cast_expression "(undefined4 *)(param_3 + 0xd68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_3 + 0xd6c) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 0xd6c) = 0" (pointer_expression "*(undefined4 *)(param_3 + 0xd6c)" * (cast_expression "(undefined4 *)(param_3 + 0xd6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd6c)" ( (binary_expression "param_3 + 0xd6c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2))" ( (binary_expression "((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)" (parenthesized_expression "((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0)" ( (binary_expression "(*(uint *)(param_3 + 0x2300) & param_2[6]) != 0" (parenthesized_expression "(*(uint *)(param_3 + 0x2300) & param_2[6])" ( (binary_expression "*(uint *)(param_3 + 0x2300) & param_2[6]" (pointer_expression "*(uint *)(param_3 + 0x2300)" * (cast_expression "(uint *)(param_3 + 0x2300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2300)" ( (binary_expression "param_3 + 0x2300" identifier + number_literal) )))) & (subscript_expression "param_2[6]" identifier [ number_literal ])) )) != number_literal) )) && (parenthesized_expression "(iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)" ( (comma_expression "iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2" (assignment_expression "iVar6 = *(int *)(param_3 + 0xd68)" identifier = (pointer_expression "*(int *)(param_3 + 0xd68)" * (cast_expression "(int *)(param_3 + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) ))))) , (binary_expression "iVar6 != -2" identifier != number_literal)) ))) )) (compound_statement "{\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }" { (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (switch_statement "switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }" switch (parenthesized_expression "(param_2[7])" ( (subscript_expression "param_2[7]" identifier [ number_literal ]) )) (compound_statement "{\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }" { (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      iVar5 = 7;\n      break;" case number_literal : (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      iVar5 = 4;\n      break;" case number_literal : (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      iVar5 = 6;\n      break;" case number_literal : (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      iVar5 = 2;\n      break;" case number_literal : (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      iVar5 = 9;\n      break;" case number_literal : (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      iVar5 = 3;\n      break;" case number_literal : (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      iVar5 = 1;\n      break;" case number_literal : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      iVar5 = 5;\n      break;" case number_literal : (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9e:" case number_literal :) (case_statement "case 0xffb0:\n      iVar5 = 0;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;" default : (expression_statement "*(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;" (assignment_expression "*(undefined4 *)(param_3 + 0xd68) = 0xfffffffe" (pointer_expression "*(undefined4 *)(param_3 + 0xd68)" * (cast_expression "(undefined4 *)(param_3 + 0xd68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0014d090;" goto statement_identifier ;)) })) (if_statement "if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }" if (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) (compound_statement "{\n      iVar5 = iVar5 + iVar6 * 10;\n    }" { (expression_statement "iVar5 = iVar5 + iVar6 * 10;" (assignment_expression "iVar5 = iVar5 + iVar6 * 10" identifier = (binary_expression "iVar5 + iVar6 * 10" identifier + (binary_expression "iVar6 * 10" identifier * number_literal))) ;) })) (expression_statement "*(int *)(param_3 + 0xd68) = iVar5;" (assignment_expression "*(int *)(param_3 + 0xd68) = iVar5" (pointer_expression "*(int *)(param_3 + 0xd68)" * (cast_expression "(int *)(param_3 + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;" (assignment_expression "*(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1" (pointer_expression "*(int *)(param_3 + 0xd6c)" * (cast_expression "(int *)(param_3 + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd6c)" ( (binary_expression "param_3 + 0xd6c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_3 + 0xd6c) + 1" (pointer_expression "*(int *)(param_3 + 0xd6c)" * (cast_expression "(int *)(param_3 + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd6c)" ( (binary_expression "param_3 + 0xd6c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (labeled_statement "LAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;" statement_identifier : (expression_statement "uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004" identifier = (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal)) ;)) (if_statement "if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar7 == 0x3e00000004)" ( (binary_expression "uVar7 == 0x3e00000004" identifier == number_literal) )) (compound_statement "{\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_0014cd38(param_3,1);" (call_expression "FUN_0014cd38(param_3,1)" identifier (argument_list "(param_3,1)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar7 == 0x3c00000004)" ( (binary_expression "uVar7 == 0x3c00000004" identifier == number_literal) )) (compound_statement "{\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_0014cd38(param_3,0xffffffff);" (call_expression "FUN_0014cd38(param_3,0xffffffff)" identifier (argument_list "(param_3,0xffffffff)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (expression_statement "uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;" (assignment_expression "uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001" identifier = (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar10 == 0xff5500000001)" ( (binary_expression "uVar10 == 0xff5500000001" identifier == number_literal) )) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2))" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2))" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , number_literal , (unary_expression "-(*(int *)(param_3 + 0xd58) / 2)" - (parenthesized_expression "(*(int *)(param_3 + 0xd58) / 2)" ( (binary_expression "*(int *)(param_3 + 0xd58) / 2" (pointer_expression "*(int *)(param_3 + 0xd58)" * (cast_expression "(int *)(param_3 + 0xd58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd58)" ( (binary_expression "param_3 + 0xd58" identifier + number_literal) )))) / number_literal) ))) ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar7 == 0xff5500000004)" ( (binary_expression "uVar7 == 0xff5500000004" identifier == number_literal) )) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff)" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff)" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar10 == 0xff5600000001)" ( (binary_expression "uVar10 == 0xff5600000001" identifier == number_literal) )) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2)" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2)" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , number_literal , (binary_expression "*(int *)(param_3 + 0xd58) / 2" (pointer_expression "*(int *)(param_3 + 0xd58)" * (cast_expression "(int *)(param_3 + 0xd58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd58)" ( (binary_expression "param_3 + 0xd58" identifier + number_literal) )))) / number_literal) ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar7 == 0xff5600000004)" ( (binary_expression "uVar7 == 0xff5600000004" identifier == number_literal) )) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1)" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,1)" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar10 == 0xff6300000001)" ( (binary_expression "uVar10 == 0xff6300000001" identifier == number_literal) )) (compound_statement "{\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_0014b0b2(param_3);" (call_expression "FUN_0014b0b2(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x4e)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" if (parenthesized_expression "((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0))" ( (binary_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)" (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0)" ( (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1ac)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1ac" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)" ( (comma_expression "iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0" (assignment_expression "iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x43)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "LAB_0014d16b:\n    local_148 = '\x1b';" statement_identifier : (expression_statement "local_148 = '\x1b';" (assignment_expression "local_148 = '\x1b'" identifier = (char_literal "'\x1b'" ' escape_sequence ')) ;)) (if_statement "if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;" if (parenthesized_expression "(((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       )" ( (binary_expression "((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)" (parenthesized_expression "((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U))))" ( (binary_expression "(iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))" ( (parenthesized_expression "(8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U))" ( (binary_expression "8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)" (binary_expression "8 < param_2[7] - 0xff95U" number_literal < (binary_expression "param_2[7] - 0xff95U" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal)) && (parenthesized_expression "(8 < param_2[7] - 0xffb1U)" ( (binary_expression "8 < param_2[7] - 0xffb1U" number_literal < (binary_expression "param_2[7] - 0xffb1U" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal)) ))) )) ))) )) && (parenthesized_expression "(iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)" ( (comma_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0" (assignment_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" identifier = (call_expression "gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x68),param_2)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x68)" * (cast_expression "(undefined8 *)(param_3 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x68)" ( (binary_expression "param_3 + 0x68" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) }) (else_clause "else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" else (compound_statement "{\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" { (expression_statement "local_148 = '\x1b';" (assignment_expression "local_148 = '\x1b'" identifier = (char_literal "'\x1b'" ' escape_sequence ')) ;) (if_statement "if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" if (parenthesized_expression "(0x3a < param_2[7] - 0xff7fU)" ( (binary_expression "0x3a < param_2[7] - 0xff7fU" number_literal < (binary_expression "param_2[7] - 0xff7fU" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal)) )) (compound_statement "{\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto LAB_0014d16b;" goto statement_identifier ;) })) (if_statement "if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" if (parenthesized_expression "((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0)" ( (binary_expression "(0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0" (parenthesized_expression "(0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1)" ( (binary_expression "0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1" (binary_expression "0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f)" number_literal >> (parenthesized_expression "((ulong)(param_2[7] - 0xff7fU) & 0x3f)" ( (binary_expression "(ulong)(param_2[7] - 0xff7fU) & 0x3f" (call_expression "(ulong)(param_2[7] - 0xff7fU)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_2[7] - 0xff7fU)" ( (binary_expression "param_2[7] - 0xff7fU" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal) ))) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto LAB_0014d16b;" goto statement_identifier ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }))) (expression_statement "uVar7 = 0xffffffffffffffff;" (assignment_expression "uVar7 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = *(char **)(param_2 + 10);" (assignment_expression "pcVar11 = *(char **)(param_2 + 10)" identifier = (pointer_expression "*(char **)(param_2 + 10)" * (cast_expression "(char **)(param_2 + 10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) ))))) ;) (do_statement "do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  }" { (if_statement "if (uVar7 == 0) break;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = uVar7 - 1;" (assignment_expression "uVar7 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);" (assignment_expression "local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" identifier = (call_expression "FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" identifier (argument_list "(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" ( number_literal , number_literal , (pointer_expression "*(char **)(param_2 + 10)" * (cast_expression "(char **)(param_2 + 10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) , (binary_expression "~uVar7 - 1" (unary_expression "~uVar7" ~ identifier) - number_literal) , identifier , number_literal )))) ;) (expression_statement "local_210 = local_208;" (assignment_expression "local_210 = local_208" identifier = identifier) ;) (expression_statement "iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);" (assignment_expression "iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" identifier = (call_expression "FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" identifier (argument_list "(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" ( (pointer_expression "&local_210" & identifier) , (pointer_expression "&local_214" & identifier) , identifier , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "(&local_148)[iVar6 + 1] = '\0';" (assignment_expression "(&local_148)[iVar6 + 1] = '\0'" (subscript_expression "(&local_148)[iVar6 + 1]" (parenthesized_expression "(&local_148)" ( (pointer_expression "&local_148" & identifier) )) [ (binary_expression "iVar6 + 1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" if (parenthesized_expression "(((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6))" ( (binary_expression "((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)" (parenthesized_expression "((char)local_147[0] == '\0')" ( (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)" ( (comma_expression "iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6" (assignment_expression "iVar6 = FUN_001563f9(param_2[7])" identifier = (call_expression "FUN_001563f9(param_2[7])" identifier (argument_list "(param_2[7])" ( (subscript_expression "param_2[7]" identifier [ number_literal ]) )))) , (binary_expression "-1 < iVar6" number_literal < identifier)) ))) )) (compound_statement "{\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }" { (expression_statement "local_208[0] = 0x1b;" (assignment_expression "local_208[0] = 0x1b" (subscript_expression "local_208[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_224 = 1;" (assignment_expression "local_224 = 1" identifier = number_literal) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (expression_statement "local_208[1] = iVar6;" (assignment_expression "local_208[1] = iVar6" (subscript_expression "local_208[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" else (compound_statement "{\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" { (expression_statement "local_49 = 0;" (assignment_expression "local_49 = 0" identifier = number_literal) ;) (expression_statement "lVar8 = -1;" (assignment_expression "lVar8 = -1" identifier = number_literal) ;) (expression_statement "pcVar11 = &local_148;" (assignment_expression "pcVar11 = &local_148" identifier = (pointer_expression "&local_148" & identifier)) ;) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar16 = ~(uint)lVar8 - 1;" (assignment_expression "iVar16 = ~(uint)lVar8 - 1" identifier = (binary_expression "~(uint)lVar8 - 1" (unary_expression "~(uint)lVar8" ~ (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar2 = param_2[6];" (assignment_expression "uVar2 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }" if (parenthesized_expression "((*(uint *)(param_3 + 0x2300) & uVar2) == 0)" ( (binary_expression "(*(uint *)(param_3 + 0x2300) & uVar2) == 0" (parenthesized_expression "(*(uint *)(param_3 + 0x2300) & uVar2)" ( (binary_expression "*(uint *)(param_3 + 0x2300) & uVar2" (pointer_expression "*(uint *)(param_3 + 0x2300)" * (cast_expression "(uint *)(param_3 + 0x2300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2300)" ( (binary_expression "param_3 + 0x2300" identifier + number_literal) )))) & identifier) )) == number_literal) )) (compound_statement "{\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" statement_identifier : (if_statement "if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" if (parenthesized_expression "((char)local_147[0] == '\0')" ( (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }" { (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;" if (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004)" ( (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004)" ( (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0014d4ea;" goto statement_identifier ;)) (if_statement "if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;" if (parenthesized_expression "(((uVar2 & 4) != 0) && (iVar16 == 2))" ( (binary_expression "((uVar2 & 4) != 0) && (iVar16 == 2)" (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_0014d49c;" goto statement_identifier ;)) }) (else_clause "else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" else (if_statement "if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" if (parenthesized_expression "(((uVar2 & 4) != 0) && (iVar16 == 2))" ( (binary_expression "((uVar2 & 4) != 0) && (iVar16 == 2)" (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) ))) )) (compound_statement "{\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" { (if_statement "if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;" if (parenthesized_expression "(4 < (byte)((char)local_147[0] - 0x33U))" ( (binary_expression "4 < (byte)((char)local_147[0] - 0x33U)" number_literal < (call_expression "(byte)((char)local_147[0] - 0x33U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((char)local_147[0] - 0x33U)" ( (binary_expression "(char)local_147[0] - 0x33U" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) - number_literal) )))) )) (goto_statement "goto LAB_0014d4a6;" goto statement_identifier ;)) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18)" identifier (argument_list "(local_147[0]._1_3_,(char)local_147[0] + -0x18)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (binary_expression "(char)local_147[0] + -0x18" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) + number_literal) )))) ;) }))))) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (iVar16 != 1) goto LAB_0014d45d;" if (parenthesized_expression "(iVar16 != 1)" ( (binary_expression "iVar16 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0014d45d;" goto statement_identifier ;)) (if_statement "if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" if (parenthesized_expression "((char)local_147[0] == '\0')" ( (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }" { (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }" if (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004)" ( (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004)" ( (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);" statement_identifier : (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0x1c)" identifier (argument_list "(local_147[0]._1_3_,0x1c)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;)) (if_statement "if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }" { (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" statement_identifier : (labeled_statement "LAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" statement_identifier : (if_statement "if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "(((char)local_147[0] == '2') || ((char)local_147[0] == ' '))" ( (binary_expression "((char)local_147[0] == '2') || ((char)local_147[0] == ' ')" (parenthesized_expression "((char)local_147[0] == '2')" ( (binary_expression "(char)local_147[0] == '2'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'2'" ' character ')) )) || (parenthesized_expression "((char)local_147[0] == ' ')" ( (binary_expression "(char)local_147[0] == ' '" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "' '" ' character ')) ))) )) (compound_statement "{\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }" { (expression_statement "local_147[0] = (uint)local_147[0]._1_3_ << 8;" (assignment_expression "local_147[0] = (uint)local_147[0]._1_3_ << 8" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (binary_expression "(uint)local_147[0]._1_3_ << 8" (cast_expression "(uint)local_147[0]._1_3_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier)) << number_literal)) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" else (if_statement "if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "((char)local_147[0] == '8')" ( (binary_expression "(char)local_147[0] == '8'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'8'" ' character ')) )) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0x7f)" identifier (argument_list "(local_147[0]._1_3_,0x7f)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" else (if_statement "if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "((char)local_147[0] == '/')" ( (binary_expression "(char)local_147[0] == '/'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0x1f)" identifier (argument_list "(local_147[0]._1_3_,0x1f)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" else (compound_statement "{\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (if_statement "if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }" if (parenthesized_expression "((byte)((char)local_147[0] - 0x40U) < 0x3f)" ( (binary_expression "(byte)((char)local_147[0] - 0x40U) < 0x3f" (call_expression "(byte)((char)local_147[0] - 0x40U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((char)local_147[0] - 0x40U)" ( (binary_expression "(char)local_147[0] - 0x40U" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) - number_literal) ))) < number_literal) )) (compound_statement "{\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (binary_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f" (call_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0])" identifier (argument_list "(local_147[0]._1_3_,(char)local_147[0])" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) ))) & number_literal)) ;) })) }))))))))) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "uVar7 = *(ulong *)(param_2 + 6);" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6)" identifier = (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) ))))) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" else (compound_statement "{\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);" statement_identifier : (expression_statement "uVar7 = *(ulong *)(param_2 + 6);" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6)" identifier = (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) ))))) ;)) (if_statement "if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }" if (parenthesized_expression "((uVar7 & 0xffffffff00000004) == 0xff6b00000004)" ( (binary_expression "(uVar7 & 0xffffffff00000004) == 0xff6b00000004" (parenthesized_expression "(uVar7 & 0xffffffff00000004)" ( (binary_expression "uVar7 & 0xffffffff00000004" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }" { (if_statement "if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }" if (parenthesized_expression "(*(long *)(param_3 + 0xd90) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd90) != 0" (pointer_expression "*(long *)(param_3 + 0xd90)" * (cast_expression "(long *)(param_3 + 0xd90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd90)" ( (binary_expression "param_3 + 0xd90" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }" { (expression_statement "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);" (call_expression "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1)" (parenthesized_expression "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))" ( (pointer_expression "**(code **)(*(long *)(param_3 + 0xd90) + 0x30)" * (pointer_expression "*(code **)(*(long *)(param_3 + 0xd90) + 0x30)" * (cast_expression "(code **)(*(long *)(param_3 + 0xd90) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_3 + 0xd90) + 0x30)" ( (binary_expression "*(long *)(param_3 + 0xd90) + 0x30" (pointer_expression "*(long *)(param_3 + 0xd90)" * (cast_expression "(long *)(param_3 + 0xd90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd90)" ( (binary_expression "param_3 + 0xd90" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_3 + 0xd98),1)" ( (pointer_expression "*(undefined8 *)(param_3 + 0xd98)" * (cast_expression "(undefined8 *)(param_3 + 0xd98)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd98)" ( (binary_expression "param_3 + 0xd98" identifier + number_literal) )))) , number_literal ))) ;) })) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) }))) (expression_statement "iVar14 = param_2[7];" (assignment_expression "iVar14 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" if (parenthesized_expression "(iVar14 == 0xff0d)" ( (binary_expression "iVar14 == 0xff0d" identifier == number_literal) )) (compound_statement "{\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0xd)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0xd)" identifier (argument_list "(local_147[0]._1_3_,0xd)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (labeled_statement "LAB_0014d670:\n    local_220 = 0x37;" statement_identifier : (expression_statement "local_220 = 0x37;" (assignment_expression "local_220 = 0x37" identifier = number_literal) ;)) (if_statement "if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }" if (parenthesized_expression "((uVar7 & 0xffffffff00000001) == 0xff0800000000)" ( (binary_expression "(uVar7 & 0xffffffff00000001) == 0xff0800000000" (parenthesized_expression "(uVar7 & 0xffffffff00000001)" ( (binary_expression "uVar7 & 0xffffffff00000001" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }" { (expression_statement "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);" (assignment_expression "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x3f)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" identifier (argument_list "(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (binary_expression "(-(iVar16 == 0) & 0x89U) + 0x7f" (parenthesized_expression "(-(iVar16 == 0) & 0x89U)" ( (binary_expression "-(iVar16 == 0) & 0x89U" (unary_expression "-(iVar16 == 0)" - (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) ))) & number_literal) )) + number_literal) )))) ;) (expression_statement "local_220 = 0x37;" (assignment_expression "local_220 = 0x37" identifier = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) })) }) (else_clause "else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" else (compound_statement "{\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" { (if_statement "if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }" if (parenthesized_expression "((char)local_147[0] != '\0')" ( (binary_expression "(char)local_147[0] != '\0'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar4 = false;\n      goto LAB_0014d670;\n    }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (goto_statement "goto LAB_0014d670;" goto statement_identifier ;) })) (if_statement "if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }" if (parenthesized_expression "((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4))" ( (binary_expression "(((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)" (parenthesized_expression "(((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32))" ( (binary_expression "((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)" (parenthesized_expression "((iVar14 - 0x20U & 0xffffffdf) == 0)" ( (binary_expression "(iVar14 - 0x20U & 0xffffffdf) == 0" (parenthesized_expression "(iVar14 - 0x20U & 0xffffffdf)" ( (binary_expression "iVar14 - 0x20U & 0xffffffdf" (binary_expression "iVar14 - 0x20U" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar14 == 0x32)" ( (binary_expression "iVar14 == 0x32" identifier == number_literal) ))) )) && (parenthesized_expression "((uVar2 & 5) == 4)" ( (binary_expression "(uVar2 & 5) == 4" (parenthesized_expression "(uVar2 & 5)" ( (binary_expression "uVar2 & 5" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      iVar16 = 2;\n      local_224 = 0;\n    }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) })) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (if_statement "if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;" if (parenthesized_expression "((uVar7 & 0xffffffff00000005) != 0x2000000005)" ( (binary_expression "(uVar7 & 0xffffffff00000005) != 0x2000000005" (parenthesized_expression "(uVar7 & 0xffffffff00000005)" ( (binary_expression "uVar7 & 0xffffffff00000005" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0014d670;" goto statement_identifier ;)) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0xa0)" identifier (argument_list "(local_147[0]._1_3_,0xa0)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" identifier = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }))) (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }" if (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001)" ( (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001)" ( (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }" { (expression_statement "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);" (assignment_expression "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x3f)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" identifier (argument_list "(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (binary_expression "(-(iVar16 == 0) & 0x77U) + 8" (parenthesized_expression "(-(iVar16 == 0) & 0x77U)" ( (binary_expression "-(iVar16 == 0) & 0x77U" (unary_expression "-(iVar16 == 0)" - (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) ))) & number_literal) )) + number_literal) )))) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) })) (expression_statement "iVar14 = param_2[7];" (assignment_expression "iVar14 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }" if (parenthesized_expression "((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001))" ( (binary_expression "(iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)" (parenthesized_expression "(iVar14 != 0xfe20)" ( (binary_expression "iVar14 != 0xfe20" identifier != number_literal) )) && (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)" ( (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001)" ( (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }" { (if_statement "if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;" if (parenthesized_expression "((1 < iVar16) || (iVar14 != 0xff09))" ( (binary_expression "(1 < iVar16) || (iVar14 != 0xff09)" (parenthesized_expression "(1 < iVar16)" ( (binary_expression "1 < iVar16" number_literal < identifier) )) || (parenthesized_expression "(iVar14 != 0xff09)" ( (binary_expression "iVar14 != 0xff09" identifier != number_literal) ))) )) (goto_statement "goto LAB_0014d7d9;" goto statement_identifier ;)) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,9);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,9)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,9)" identifier (argument_list "(local_147[0]._1_3_,9)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (goto_statement "goto switchD_0014d8c5_caseD_ff80;" goto statement_identifier ;) })) (expression_statement "local_147[0] = 0x5a5b1b;" (assignment_expression "local_147[0] = 0x5a5b1b" (subscript_expression "local_147[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" statement_identifier : (if_statement "if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" { (switch_statement "switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }" switch (parenthesized_expression "(iVar14)" ( identifier )) (compound_statement "{\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }" { (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;" case number_literal : (expression_statement "pcVar11 = "yY\x19";" (assignment_expression "pcVar11 = "yY\x19"" identifier = (string_literal ""yY\x19"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      pcVar11 = "hH\b";\n      break;" case number_literal : (expression_statement "pcVar11 = "hH\b";" (assignment_expression "pcVar11 = "hH\b"" identifier = (string_literal ""hH\b"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      pcVar11 = "kK\v";\n      break;" case number_literal : (expression_statement "pcVar11 = "kK\v";" (assignment_expression "pcVar11 = "kK\v"" identifier = (string_literal ""kK\v"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      pcVar11 = "lL\f";\n      break;" case number_literal : (expression_statement "pcVar11 = "lL\f";" (assignment_expression "pcVar11 = "lL\f"" identifier = (string_literal ""lL\f"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;" case number_literal : (expression_statement "pcVar11 = "jJ\n";" (assignment_expression "pcVar11 = "jJ\n"" identifier = (string_literal ""jJ\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;" case number_literal : (expression_statement "pcVar11 = "uU\x15";" (assignment_expression "pcVar11 = "uU\x15"" identifier = (string_literal ""uU\x15"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;" case number_literal : (expression_statement "pcVar11 = "nN\x0e";" (assignment_expression "pcVar11 = "nN\x0e"" identifier = (string_literal ""nN\x0e"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;" case number_literal : (expression_statement "pcVar11 = "bB\x02";" (assignment_expression "pcVar11 = "bB\x02"" identifier = (string_literal ""bB\x02"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      pcVar11 = "...";\n      break;" case number_literal : (expression_statement "pcVar11 = "...";" (assignment_expression "pcVar11 = "..."" identifier = (string_literal ""..."" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "default:\n      goto switchD_0014d802_caseD_ff9e;" default : (goto_statement "goto switchD_0014d802_caseD_ff9e;" goto statement_identifier ;)) })) (if_statement "if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" if (parenthesized_expression "((param_2[6] & 4U) == 0)" ( (binary_expression "(param_2[6] & 4U) == 0" (parenthesized_expression "(param_2[6] & 4U)" ( (binary_expression "param_2[6] & 4U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }" { (if_statement "if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" if (parenthesized_expression "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,*pcVar11)" identifier (argument_list "(local_147[0]._1_3_,*pcVar11)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (pointer_expression "*pcVar11" * identifier) )))) ;) }) (else_clause "else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" else (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1])" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,pcVar11[1])" identifier (argument_list "(local_147[0]._1_3_,pcVar11[1])" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (subscript_expression "pcVar11[1]" identifier [ number_literal ]) )))) ;) }))) }) (else_clause "else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" else (compound_statement "{\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2])" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,pcVar11[2])" identifier (argument_list "(local_147[0]._1_3_,pcVar11[2])" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (subscript_expression "pcVar11[2]" identifier [ number_literal ]) )))) ;) }))) (expression_statement "iVar5 = 2 - iVar6;" (assignment_expression "iVar5 = 2 - iVar6" identifier = (binary_expression "2 - iVar6" number_literal - identifier)) ;) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0014e163;" goto statement_identifier ;) }))) (labeled_statement "switchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" statement_identifier : (if_statement "if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" { (switch_statement "switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" switch (parenthesized_expression "(iVar14)" ( identifier )) (compound_statement "{\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" { (case_statement "case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;" case number_literal : (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }" if (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }" { (expression_statement "iVar5 = 0x50;" (assignment_expression "iVar5 = 0x50" identifier = number_literal) ;) (goto_statement "goto LAB_0014d978;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0x50;" (assignment_expression "iVar5 = 0x50" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8e1;" goto statement_identifier ;)) (case_statement "default:\n      goto switchD_0014d8c5_caseD_ff80;" default : (goto_statement "goto switchD_0014d8c5_caseD_ff80;" goto statement_identifier ;)) (case_statement "case 0xff8d:\n      iVar5 = 0x4d;\n      break;" case number_literal : (expression_statement "iVar5 = 0x4d;" (assignment_expression "iVar5 = 0x4d" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      iVar5 = 0x77;\n      break;" case number_literal : (expression_statement "iVar5 = 0x77;" (assignment_expression "iVar5 = 0x77" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      iVar5 = 0x74;\n      break;" case number_literal : (expression_statement "iVar5 = 0x74;" (assignment_expression "iVar5 = 0x74" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      iVar5 = 0x78;\n      break;" case number_literal : (expression_statement "iVar5 = 0x78;" (assignment_expression "iVar5 = 0x78" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      iVar5 = 0x76;\n      break;" case number_literal : (expression_statement "iVar5 = 0x76;" (assignment_expression "iVar5 = 0x76" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      iVar5 = 0x72;\n      break;" case number_literal : (expression_statement "iVar5 = 0x72;" (assignment_expression "iVar5 = 0x72" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      iVar5 = 0x79;\n      break;" case number_literal : (expression_statement "iVar5 = 0x79;" (assignment_expression "iVar5 = 0x79" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      iVar5 = 0x73;\n      break;" case number_literal : (expression_statement "iVar5 = 0x73;" (assignment_expression "iVar5 = 0x73" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      iVar5 = 0x71;\n      break;" case number_literal : (expression_statement "iVar5 = 0x71;" (assignment_expression "iVar5 = 0x71" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      iVar5 = 0x75;\n      break;" case number_literal : (expression_statement "iVar5 = 0x75;" (assignment_expression "iVar5 = 0x75" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9e:" case number_literal :) (case_statement "case 0xffb0:\n      iVar5 = 0x70;\n      break;" case number_literal : (expression_statement "iVar5 = 0x70;" (assignment_expression "iVar5 = 0x70" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9f:" case number_literal :) (case_statement "case 0xffae:\n      iVar5 = 0x6e;\n      break;" case number_literal : (expression_statement "iVar5 = 0x6e;" (assignment_expression "iVar5 = 0x6e" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;" case number_literal : (expression_statement "iVar5 = 0x52;" (assignment_expression "iVar5 = 0x52" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8cd;" goto statement_identifier ;)) (case_statement "case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;" case number_literal : (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x41)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }" { (expression_statement "iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);" (assignment_expression "iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0)" identifier = (binary_expression "0x6c - (uint)((param_2[6] & 1U) == 0)" number_literal - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))))) ;) }) (else_clause "else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" else (compound_statement "{\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" { (expression_statement "iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);" (assignment_expression "iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0)" identifier = (binary_expression "0x6d - (uint)((param_2[6] & 1U) == 0)" number_literal - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;" case number_literal : (expression_statement "iVar5 = 0x53;" (assignment_expression "iVar5 = 0x53" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8cd;" goto statement_identifier ;)) (case_statement "case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;" case number_literal : (expression_statement "iVar5 = 0x51;" (assignment_expression "iVar5 = 0x51" identifier = number_literal) ;) (labeled_statement "LAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;" statement_identifier : (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;" if (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0014d978;" goto statement_identifier ;))) (labeled_statement "LAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);" statement_identifier : (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f385,iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , identifier ))) ;)) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" if (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }" { (labeled_statement "LAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);" statement_identifier : (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f389,iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , identifier ))) ;)) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" else (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_001827ed,iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001827ed" & identifier) , identifier ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (labeled_statement "switchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" statement_identifier : (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x41)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;)) (expression_statement "uVar2 = param_2[7];" (assignment_expression "uVar2 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (switch_statement "switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }" switch (parenthesized_expression "(uVar2)" ( identifier )) (compound_statement "{\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }" { (case_statement "case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (labeled_statement "LAB_0014da2f:\n    uVar13 = param_2[6];" statement_identifier : (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;)) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" identifier = (binary_expression "uVar13 & 4" identifier & number_literal)) ;) (if_statement "if (uVar15 != 0) goto LAB_0014e24b;" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014e24b;" goto statement_identifier ;)) (labeled_statement "LAB_0014dbca:\n    uVar15 = 0;" statement_identifier : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;" statement_identifier : (if_statement "if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;" if (parenthesized_expression "((iVar5 != 3) || (6 < local_228))" ( (binary_expression "(iVar5 != 3) || (6 < local_228)" (parenthesized_expression "(iVar5 != 3)" ( (binary_expression "iVar5 != 3" identifier != number_literal) )) || (parenthesized_expression "(6 < local_228)" ( (binary_expression "6 < local_228" number_literal < identifier) ))) )) (goto_statement "goto LAB_0014e24b;" goto statement_identifier ;))) (expression_statement "local_228 = (int)(char)(&DAT_00182a60)[local_228];" (assignment_expression "local_228 = (int)(char)(&DAT_00182a60)[local_228]" identifier = (cast_expression "(int)(char)(&DAT_00182a60)[local_228]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(&DAT_00182a60)[local_228]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&DAT_00182a60)[local_228]" (parenthesized_expression "(&DAT_00182a60)" ( (pointer_expression "&DAT_00182a60" & identifier) )) [ identifier ])))) ;) (expression_statement "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" (assignment_expression "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" identifier = (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar14 != 0) goto LAB_0014dce7;" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014dce7;" goto statement_identifier ;)) (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (goto_statement "goto LAB_0014dd14;" goto statement_identifier ;)) (case_statement "case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc8:\n    local_228 = 0x17;\n    break;" case number_literal : (expression_statement "local_228 = 0x17;" (assignment_expression "local_228 = 0x17" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc9:\n    local_228 = 0x18;\n    break;" case number_literal : (expression_statement "local_228 = 0x18;" (assignment_expression "local_228 = 0x18" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffca:\n    local_228 = 0x19;\n    break;" case number_literal : (expression_statement "local_228 = 0x19;" (assignment_expression "local_228 = 0x19" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcb:\n    local_228 = 0x1a;\n    break;" case number_literal : (expression_statement "local_228 = 0x1a;" (assignment_expression "local_228 = 0x1a" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcc:\n    local_228 = 0x1c;\n    break;" case number_literal : (expression_statement "local_228 = 0x1c;" (assignment_expression "local_228 = 0x1c" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcd:\n    local_228 = 0x1d;\n    break;" case number_literal : (expression_statement "local_228 = 0x1d;" (assignment_expression "local_228 = 0x1d" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffce:\n    local_228 = 0x1f;\n    break;" case number_literal : (expression_statement "local_228 = 0x1f;" (assignment_expression "local_228 = 0x1f" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcf:\n    local_228 = 0x20;\n    break;" case number_literal : (expression_statement "local_228 = 0x20;" (assignment_expression "local_228 = 0x20" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffd0:\n    local_228 = 0x21;\n    break;" case number_literal : (expression_statement "local_228 = 0x21;" (assignment_expression "local_228 = 0x21" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffd1:\n    local_228 = 0x22;\n    break;" case number_literal : (expression_statement "local_228 = 0x22;" (assignment_expression "local_228 = 0x22" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;" default : (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" identifier = (binary_expression "uVar13 & 4" identifier & number_literal)) ;) (if_statement "if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }" { (if_statement "if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar2 == 0xff95)" ( (binary_expression "uVar2 == 0xff95" identifier == number_literal) )) (compound_statement "{\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 1;" (assignment_expression "local_228 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar2 < 0xff96)" ( (binary_expression "uVar2 < 0xff96" identifier < number_literal) )) (compound_statement "{\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }" { (if_statement "if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" if (parenthesized_expression "(uVar2 == 0xff56)" ( (binary_expression "uVar2 == 0xff56" identifier == number_literal) )) (compound_statement "{\n          local_228 = 6;\n        }" { (expression_statement "local_228 = 6;" (assignment_expression "local_228 = 6" identifier = number_literal) ;) }) (else_clause "else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" else (if_statement "if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" if (parenthesized_expression "(uVar2 < 0xff57)" ( (binary_expression "uVar2 < 0xff57" identifier < number_literal) )) (compound_statement "{\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }" { (expression_statement "local_228 = 1;" (assignment_expression "local_228 = 1" identifier = number_literal) ;) (if_statement "if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }" if (parenthesized_expression "(uVar2 != 0xff50)" ( (binary_expression "uVar2 != 0xff50" identifier != number_literal) )) (compound_statement "{\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }" { (if_statement "if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" if (parenthesized_expression "(uVar2 != 0xff55)" ( (binary_expression "uVar2 != 0xff55" identifier != number_literal) )) (compound_statement "{\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 5;" (assignment_expression "local_228 = 5" identifier = number_literal) ;) })) }) (else_clause "else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" else (compound_statement "{\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" { (expression_statement "local_228 = 4;" (assignment_expression "local_228 = 4" identifier = number_literal) ;) (if_statement "if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }" if (parenthesized_expression "(uVar2 != 0xff57)" ( (binary_expression "uVar2 != 0xff57" identifier != number_literal) )) (compound_statement "{\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }" { (if_statement "if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" if (parenthesized_expression "(uVar2 != 0xff63)" ( (binary_expression "uVar2 != 0xff63" identifier != number_literal) )) (compound_statement "{\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 2;" (assignment_expression "local_228 = 2" identifier = number_literal) ;) })) }))))) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar2 == 0xff9c)" ( (binary_expression "uVar2 == 0xff9c" identifier == number_literal) )) (compound_statement "{\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 4;" (assignment_expression "local_228 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar2 < 0xff9d)" ( (binary_expression "uVar2 < 0xff9d" identifier < number_literal) )) (compound_statement "{\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 5;" (assignment_expression "local_228 = 5" identifier = number_literal) ;) (if_statement "if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }" if (parenthesized_expression "(uVar2 != 0xff9a)" ( (binary_expression "uVar2 != 0xff9a" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }" { (if_statement "if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }" if (parenthesized_expression "(uVar2 != 0xff9b)" ( (binary_expression "uVar2 != 0xff9b" identifier != number_literal) )) (compound_statement "{\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 6;" (assignment_expression "local_228 = 6" identifier = number_literal) ;) })) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (expression_statement "local_228 = 3;" (assignment_expression "local_228 = 3" identifier = number_literal) ;) (if_statement "if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;" if (parenthesized_expression "(((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))" ( (binary_expression "((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e)" (parenthesized_expression "((uVar2 == 0xff9f) || (uVar2 == 0xffff))" ( (binary_expression "(uVar2 == 0xff9f) || (uVar2 == 0xffff)" (parenthesized_expression "(uVar2 == 0xff9f)" ( (binary_expression "uVar2 == 0xff9f" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0xffff)" ( (binary_expression "uVar2 == 0xffff" identifier == number_literal) ))) )) || (parenthesized_expression "(local_228 = 2, uVar2 == 0xff9e)" ( (comma_expression "local_228 = 2, uVar2 == 0xff9e" (assignment_expression "local_228 = 2" identifier = number_literal) , (binary_expression "uVar2 == 0xff9e" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;)) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;)) })) (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" identifier = (binary_expression "uVar13 & 4" identifier & number_literal)) ;) (labeled_statement "LAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" statement_identifier : (expression_statement "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" (assignment_expression "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" identifier = (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) ))))) ;)) (if_statement "if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }" { (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (if_statement "if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" if (parenthesized_expression "((0x17 < local_228 - 0xbU) || (iVar5 != 5))" ( (binary_expression "(0x17 < local_228 - 0xbU) || (iVar5 != 5)" (parenthesized_expression "(0x17 < local_228 - 0xbU)" ( (binary_expression "0x17 < local_228 - 0xbU" number_literal < (binary_expression "local_228 - 0xbU" identifier - number_literal)) )) || (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) ))) )) (compound_statement "{\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }" { (if_statement "if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;" if (parenthesized_expression "((5 < local_228 - 1U) || (iVar5 != 5))" ( (binary_expression "(5 < local_228 - 1U) || (iVar5 != 5)" (parenthesized_expression "(5 < local_228 - 1U)" ( (binary_expression "5 < local_228 - 1U" number_literal < (binary_expression "local_228 - 1U" identifier - number_literal)) )) || (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) ))) )) (goto_statement "goto LAB_0014dd14;" goto statement_identifier ;)) (expression_statement "local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);" (assignment_expression "local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48)" identifier = (call_expression "CONCAT17(local_188._7_1_,0x4749462e4c48)" identifier (argument_list "(local_188._7_1_,0x4749462e4c48)" ( (field_expression "local_188._7_1_" identifier . field_identifier) , number_literal )))) ;) (if_statement "if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" if (parenthesized_expression "(local_228 == 3)" ( (binary_expression "local_228 == 3" identifier == number_literal) )) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0x7f)" identifier (argument_list "(local_147[0]._1_3_,0x7f)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" else (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)))" identifier (argument_list "(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)))" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f38e" & identifier) , (cast_expression "(int)*(char *)((long)&local_188 + (long)(local_228 + -1))" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((long)&local_188 + (long)(local_228 + -1))" * (cast_expression "(char *)((long)&local_188 + (long)(local_228 + -1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_188 + (long)(local_228 + -1))" ( (binary_expression "(long)&local_188 + (long)(local_228 + -1)" (cast_expression "(long)&local_188" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_188" & identifier)) + (cast_expression "(long)(local_228 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_228 + -1)" ( (binary_expression "local_228 + -1" identifier + number_literal) )))) ))))) ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" else (compound_statement "{\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" { (labeled_statement "LAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;" statement_identifier : (expression_statement "local_188 = 0x54535251504f4e4d;" (assignment_expression "local_188 = 0x54535251504f4e4d" identifier = number_literal) ;)) (expression_statement "local_180 = 0x62615a5958575655;" (assignment_expression "local_180 = 0x62615a5958575655" identifier = number_literal) ;) (expression_statement "local_178 = 0x6a69686766656463;" (assignment_expression "local_178 = 0x6a69686766656463" identifier = number_literal) ;) (expression_statement "local_170 = 0x7271706f6e6d6c6b;" (assignment_expression "local_170 = 0x7271706f6e6d6c6b" identifier = number_literal) ;) (expression_statement "local_168 = 0x7a79787776757473;" (assignment_expression "local_168 = 0x7a79787776757473" identifier = number_literal) ;) (expression_statement "local_160 = 0x7b605f5e5d5c5b40;" (assignment_expression "local_160 = 0x7b605f5e5d5c5b40" identifier = number_literal) ;) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (switch_statement "switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }" switch (parenthesized_expression "(uVar2)" ( identifier )) (compound_statement "{\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }" { (case_statement "case 0xffbf:\n        iVar5 = 1;\n        break;" case number_literal : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc0:\n        iVar5 = 2;\n        break;" case number_literal : (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc1:\n        iVar5 = 3;\n        break;" case number_literal : (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc2:\n        iVar5 = 4;\n        break;" case number_literal : (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc3:\n        iVar5 = 5;\n        break;" case number_literal : (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc4:\n        iVar5 = 6;\n        break;" case number_literal : (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc5:\n        iVar5 = 7;\n        break;" case number_literal : (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc6:\n        break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0xffc7:\n        iVar5 = 9;\n        break;" case number_literal : (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc8:\n        iVar5 = 10;\n        break;" case number_literal : (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc9:\n        iVar5 = 0xb;\n        break;" case number_literal : (expression_statement "iVar5 = 0xb;" (assignment_expression "iVar5 = 0xb" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n        iVar5 = 0;" default : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;)) })) (if_statement "if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }" if (parenthesized_expression "((uVar13 & 1) != 0)" ( (binary_expression "(uVar13 & 1) != 0" (parenthesized_expression "(uVar13 & 1)" ( (binary_expression "uVar13 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar5 = iVar5 + 0xc;\n      }" { (expression_statement "iVar5 = iVar5 + 0xc;" (assignment_expression "iVar5 = iVar5 + 0xc" identifier = (binary_expression "iVar5 + 0xc" identifier + number_literal)) ;) })) (if_statement "if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = iVar5 + 0x18;\n      }" { (expression_statement "iVar5 = iVar5 + 0x18;" (assignment_expression "iVar5 = iVar5 + 0x18" identifier = (binary_expression "iVar5 + 0x18" identifier + number_literal)) ;) })) (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5))" identifier (argument_list "(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5))" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f38e" & identifier) , (cast_expression "(int)*(char *)((long)&local_188 + (long)iVar5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((long)&local_188 + (long)iVar5)" * (cast_expression "(char *)((long)&local_188 + (long)iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_188 + (long)iVar5)" ( (binary_expression "(long)&local_188 + (long)iVar5" (cast_expression "(long)&local_188" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_188" & identifier)) + (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }))) (labeled_statement "LAB_0014d90a:\n    iVar5 = iVar16 - iVar6;" statement_identifier : (expression_statement "iVar5 = iVar16 - iVar6;" (assignment_expression "iVar5 = iVar16 - iVar6" identifier = (binary_expression "iVar16 - iVar6" identifier - identifier)) ;)) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" else (compound_statement "{\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" { (labeled_statement "LAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" statement_identifier : (if_statement "if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(local_228 - 1U < 6)" ( (binary_expression "local_228 - 1U < 6" (binary_expression "local_228 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228])" identifier (argument_list "(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228])" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (cast_expression "(int)" HLMEIG"[local_228]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "" HLMEIG"[local_228]" (string_literal "" HLMEIG"" " string_content ") [ identifier ])) ))) ;) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (if_statement "if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;" if (parenthesized_expression "((local_228 - 0xbU < 0x18) && (iVar5 == 5))" ( (binary_expression "(local_228 - 0xbU < 0x18) && (iVar5 == 5)" (parenthesized_expression "(local_228 - 0xbU < 0x18)" ( (binary_expression "local_228 - 0xbU < 0x18" (binary_expression "local_228 - 0xbU" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(iVar5 == 5)" ( (binary_expression "iVar5 == 5" identifier == number_literal) ))) )) (goto_statement "goto LAB_0014ddd3;" goto statement_identifier ;)) (labeled_statement "LAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" statement_identifier : (if_statement "if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe))" ( (binary_expression "((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)" (parenthesized_expression "((iVar5 == 4) || (iVar14 != 0))" ( (binary_expression "(iVar5 == 4) || (iVar14 != 0)" (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_228 - 0xbU < 0xe)" ( (binary_expression "local_228 - 0xbU < 0xe" (binary_expression "local_228 - 0xbU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" { (expression_statement "iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);" (assignment_expression "iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228)" identifier = (binary_expression "(uint)(0xf < local_228) + (uint)(0x15 < local_228)" (call_expression "(uint)(0xf < local_228)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xf < local_228)" ( (binary_expression "0xf < local_228" number_literal < identifier) ))) + (call_expression "(uint)(0x15 < local_228)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x15 < local_228)" ( (binary_expression "0x15 < local_228" number_literal < identifier) ))))) ;) (if_statement "if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , (binary_expression "(local_228 + 0x45) - iVar5" (parenthesized_expression "(local_228 + 0x45)" ( (binary_expression "local_228 + 0x45" identifier + number_literal) )) - identifier) ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" else (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (binary_expression "(local_228 + 0x45) - iVar5" (parenthesized_expression "(local_228 + 0x45)" ( (binary_expression "local_228 + 0x45" identifier + number_literal) )) - identifier) ))) ;) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (if_statement "if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10))" ( (binary_expression "((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)" (parenthesized_expression "((bool)(iVar5 == 1 & bVar3))" ( (cast_expression "(bool)(iVar5 == 1 & bVar3)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(iVar5 == 1 & bVar3)" ( (binary_expression "iVar5 == 1 & bVar3" (binary_expression "iVar5 == 1" identifier == number_literal) & identifier) ))) )) && (parenthesized_expression "(local_228 < 0x10)" ( (binary_expression "local_228 < 0x10" identifier < number_literal) ))) )) (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36)" identifier (argument_list "(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001827e1" & identifier) , (binary_expression "local_228 + 0x36" identifier + number_literal) ))) ;) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (if_statement "if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf))" ( (binary_expression "((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)" (parenthesized_expression "((bool)(iVar5 == 2 & bVar3))" ( (cast_expression "(bool)(iVar5 == 2 & bVar3)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(iVar5 == 2 & bVar3)" ( (binary_expression "iVar5 == 2 & bVar3" (binary_expression "iVar5 == 2" identifier == number_literal) & identifier) ))) )) && (parenthesized_expression "(local_228 < 0xf)" ( (binary_expression "local_228 < 0xf" identifier < number_literal) ))) )) (compound_statement "{\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" { (if_statement "if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , (binary_expression "local_228 + 0x45" identifier + number_literal) ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" else (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (binary_expression "local_228 + 0x45" identifier + number_literal) ))) ;) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (if_statement "if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" if (parenthesized_expression "(((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0))" ( (binary_expression "((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)" (parenthesized_expression "((local_228 == 1) || (local_228 == 4))" ( (binary_expression "(local_228 == 1) || (local_228 == 4)" (parenthesized_expression "(local_228 == 1)" ( (binary_expression "local_228 == 1" identifier == number_literal) )) || (parenthesized_expression "(local_228 == 4)" ( (binary_expression "local_228 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x40)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }" { (expression_statement "puVar9 = &DAT_001827d9;" (assignment_expression "puVar9 = &DAT_001827d9" identifier = (pointer_expression "&DAT_001827d9" & identifier)) ;) (if_statement "if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }" if (parenthesized_expression "(local_228 != 1)" ( (binary_expression "local_228 != 1" identifier != number_literal) )) (compound_statement "{\n        puVar9 = &DAT_001827dd;\n      }" { (expression_statement "puVar9 = &DAT_001827dd;" (assignment_expression "puVar9 = &DAT_001827dd" identifier = (pointer_expression "&DAT_001827dd" & identifier)) ;) })) (expression_statement "iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);" (assignment_expression "iVar16 = __sprintf_chk(local_147,1,0xff,puVar9)" identifier = (call_expression "__sprintf_chk(local_147,1,0xff,puVar9)" identifier (argument_list "(local_147,1,0xff,puVar9)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" else (compound_statement "{\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" { (if_statement "if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }" if (parenthesized_expression "(local_228 != 0)" ( (binary_expression "local_228 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }" { (expression_statement "iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);" (assignment_expression "iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228)" identifier = (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228)" identifier (argument_list "(local_147,1,0xff,&DAT_001827e7,local_228)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001827e7" & identifier) , identifier )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (switch_statement "switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }" switch (parenthesized_expression "(param_2[7])" ( (subscript_expression "param_2[7]" identifier [ number_literal ]) )) (compound_statement "{\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }" { (case_statement "case 0xff51:" case number_literal :) (case_statement "case 0xff96:\n        uVar12 = 0x44;\n        break;" case number_literal : (expression_statement "uVar12 = 0x44;" (assignment_expression "uVar12 = 0x44" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff52:" case number_literal :) (case_statement "case 0xff97:\n        uVar12 = 0x41;\n        break;" case number_literal : (expression_statement "uVar12 = 0x41;" (assignment_expression "uVar12 = 0x41" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff53:" case number_literal :) (case_statement "case 0xff98:\n        uVar12 = 0x43;\n        break;" case number_literal : (expression_statement "uVar12 = 0x43;" (assignment_expression "uVar12 = 0x43" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff54:" case number_literal :) (case_statement "case 0xff99:\n        uVar12 = 0x42;\n        break;" case number_literal : (expression_statement "uVar12 = 0x42;" (assignment_expression "uVar12 = 0x42" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n        local_228 = local_224;\n        goto LAB_0014e155;" default : (expression_statement "local_228 = local_224;" (assignment_expression "local_228 = local_224" identifier = identifier) ;) (goto_statement "goto LAB_0014e155;" goto statement_identifier ;)) (case_statement "case 0xff58:" case number_literal :) (case_statement "case 0xff9d:\n        uVar12 = 0x47;" case number_literal : (expression_statement "uVar12 = 0x47;" (assignment_expression "uVar12 = 0x47" identifier = number_literal) ;)) })) (expression_statement "iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);" (assignment_expression "iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" identifier = (call_expression "FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" identifier (argument_list "(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" ( identifier , (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , identifier , (binary_expression "param_2[6] & 4" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }))) (labeled_statement "LAB_0014e155:\n    iVar5 = iVar16 - iVar6;" statement_identifier : (expression_statement "iVar5 = iVar16 - iVar6;" (assignment_expression "iVar5 = iVar16 - iVar6" identifier = (binary_expression "iVar16 - iVar6" identifier - identifier)) ;)) (if_statement "if (iVar5 < 1) goto LAB_0014cf81;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" statement_identifier : (if_statement "if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }" { (expression_statement "(&local_148)[iVar16] = '\0';" (assignment_expression "(&local_148)[iVar16] = '\0'" (subscript_expression "(&local_148)[iVar16]" (parenthesized_expression "(&local_148)" ( (pointer_expression "&local_148" & identifier) )) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }" if (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }" { (expression_statement "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);" (call_expression "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1)" identifier (argument_list "(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1)" ( (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) , (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" & identifier) + identifier) , number_literal , number_literal ))) ;) })) }) (else_clause "else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" else (if_statement "if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0xd10) == 0)" ( (binary_expression "*(int *)(param_3 + 0xd10) == 0" (pointer_expression "*(int *)(param_3 + 0xd10)" * (cast_expression "(int *)(param_3 + 0xd10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd10)" ( (binary_expression "param_3 + 0xd10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }" { (if_statement "if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" if (parenthesized_expression "(local_228 == 0)" ( (binary_expression "local_228 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }" { (labeled_statement "LAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" statement_identifier : (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" if (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" { (expression_statement "FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);" (call_expression "FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1)" identifier (argument_list "(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1)" ( (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) , identifier , (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" & identifier) + identifier) , identifier , number_literal ))) ;) }))) }) (else_clause "else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" else (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" if (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" { (expression_statement "FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);" (call_expression "FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1)" identifier (argument_list "(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1)" ( (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) , (binary_expression "local_208 + iVar6" identifier + identifier) , identifier , number_literal ))) ;) })))) }) (else_clause "else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" else (compound_statement "{\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" { (labeled_statement "LAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" statement_identifier : (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" if (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" { (expression_statement "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);" (call_expression "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1)" identifier (argument_list "(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1)" ( (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) , (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" & identifier) + identifier) , identifier , number_literal ))) ;) }))) })))))) (expression_statement "FUN_001495b0(param_3,0);" (call_expression "FUN_001495b0(param_3,0)" identifier (argument_list "(param_3,0)" ( identifier , number_literal ))) ;) (expression_statement "FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));" (call_expression "FUN_0013112b(*(undefined8 *)(param_3 + 0xda0))" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0))" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Enum "GdkEventType": Some values do not have unique names */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\ngint key_event(GtkWidget *widget,GdkEventKey *event,gpointer data)\n\n{\n  char cVar1;\n  guint gVar2;\n  long lVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  wchar_t wVar10;\n  uint uVar11;\n  int iVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  undefined *puVar16;\n  ulong uVar17;\n  char *pcVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  long in_FS_OFFSET;\n  byte bVar23;\n  int local_228;\n  int local_224;\n  wchar_t local_220;\n  wchar_t wlen;\n  wchar_t *wp;\n  wchar_t ucsoutput [2];\n  char codes [49];\n  char output [256];\n  \n  bVar23 = 0;\n  lVar3 = *(long *)(in_FS_OFFSET + 0x28);\n  *(guint32 *)((long)data + 0x22e0) = event->time;\n  if (event->type == GDK_KEY_RELEASE) {\n    if (((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||\n       (*(int *)((long)data + 0xd6c) < 2)) {\n      iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);\n      if (iVar12 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    output[0] = (char)*(int *)((long)data + 0xd68);\n    if (*(int *)((long)data + 0xd10) != 0) {\n      iVar12 = 0;\n      wVar10 = L'\x01';\n      goto LAB_0014d003;\n    }\n    local_220 = L'\x01';\n    wVar10 = L'\x01';\n    iVar12 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (event->type != GDK_KEY_PRESS) goto LAB_0014cf81;\n  if (event->keyval - 0xffe7 < 4) {\n    *(undefined4 *)((long)data + 0xd68) = 0xffffffff;\n    *(undefined4 *)((long)data + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)((long)data + 0x2300) & event->state) != 0) &&\n     (iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2)) {\n    iVar9 = 8;\n    switch(event->keyval) {\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0;\n      break;\n    default:\n      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar12 != -1) {\n      iVar9 = iVar9 + iVar12 * 10;\n    }\n    *(int *)((long)data + 0xd68) = iVar9;\n    *(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar17._0_4_ = event->state;\n  uVar17._4_4_ = event->keyval;\n  uVar13 = uVar17 & 0xffffffff00000004;\n  if (uVar13 == 0x3e00000004) {\n    change_font_size((gui_data *)data,L'\x01');\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0x3c00000004) {\n    change_font_size((gui_data *)data,L'\xffffffff');\n    goto LAB_0014cf81;\n  }\n  uVar17 = uVar17 & 0xffffffff00000001;\n  if (uVar17 == 0xff5500000001) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0xff5500000004) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff');\n    goto LAB_0014cf81;\n  }\n  if (uVar17 == 0xff5600000001) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0xff5600000004) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01');\n    goto LAB_0014cf81;\n  }\n  if (uVar17 == 0xff6300000001) {\n    request_paste(data);\n    goto LAB_0014cf81;\n  }\n  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0) ||\n     (iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0)) {\n    bVar7 = false;\nLAB_0014d16b:\n    output[0] = '\x1b';\n    if (((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&\n       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0)) goto LAB_0014cf81;\n  }\n  else {\n    output[0] = '\x1b';\n    uVar11 = event->keyval - 0xff7f;\n    if (0x3a < uVar11) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    bVar7 = true;\n  }\n  lVar14 = -1;\n  pcVar18 = event->string;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    cVar1 = *pcVar18;\n    pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  wlen = mb_to_wc(L'\xffff',L'\0',event->string,~(uint)lVar14 + L'\xffffffff',ucsoutput,L'\x1f');\n  wp = ucsoutput;\n  wVar10 = charset_from_unicode\n                     (&wp,&wlen,output + 1,L'þ',L'7',(charset_state *)0x0,(char *)0x0,L'\0');\n  output[wVar10 + L'\x01'] = '\0';\n  if ((output[1] == '\0') && (wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10)) {\n    ucsoutput[0] = L'\x1b';\n    local_224 = 1;\n    iVar22 = 2;\n    ucsoutput[1] = wVar10;\n  }\n  else {\n    output[0xff] = '\0';\n    lVar14 = -1;\n    pcVar18 = output;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar22 = ~(uint)lVar14 - 1;\n    local_224 = 0;\n  }\n  uVar11 = event->state;\n  if ((*(uint *)((long)data + 0x2300) & uVar11) == 0) {\n    iVar12 = 1;\nLAB_0014d45d:\n    if (output[1] == '\0') {\n      uVar13._0_4_ = event->state;\n      uVar13._4_4_ = event->keyval;\n      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }\n    goto LAB_0014d51c;\n  }\n  iVar12 = 0;\n  if (iVar22 != 1) goto LAB_0014d45d;\n  if (output[1] == '\0') {\n    uVar6._0_4_ = event->state;\n    uVar6._4_4_ = event->keyval;\n    if ((uVar6 & 0xffffffff00000004) != 0x6000000004) {\n      iVar22 = 0;\n      iVar12 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar12 = 0;\nLAB_0014d4ea:\n    output[1] = '\x1c';\n    if ((uVar11 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    local_224 = 0;\n    iVar22 = 2;\n  }\n  else {\n    iVar22 = 0;\n    iVar12 = 0;\nLAB_0014d51c:\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    if ((uVar15 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  gVar2 = event->keyval;\n  if (gVar2 == 0xff0d) {\n    output[1] = '\r';\n    bVar8 = true;\n    local_224 = 0;\n    iVar22 = 2;\nLAB_0014d670:\n    local_220 = L'7';\n    if ((uVar15 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n      output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;\n      local_220 = L'7';\n      local_224 = 0;\n      bVar8 = true;\n      iVar22 = 2;\n    }\n  }\n  else {\n    if (output[1] != '\0') {\n      bVar8 = false;\n      goto LAB_0014d670;\n    }\n    if ((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)) {\n      iVar22 = 2;\n      local_224 = 0;\n    }\n    bVar8 = false;\n    if ((uVar15 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    output[1] = -0x60;\n    local_220 = L'\x01';\n    local_224 = 0;\n    bVar8 = false;\n    iVar22 = 2;\n  }\n  uVar4._0_4_ = event->state;\n  uVar4._4_4_ = event->keyval;\n  if ((uVar4 & 0xffffffff00000001) == 0xff0800000001) {\n    iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n    output[1] = (-(iVar22 == 0) & 0x77U) + 8;\n    local_224 = 0;\n    bVar8 = true;\n    iVar22 = 2;\n  }\n  gVar2 = event->keyval;\n  if ((gVar2 != 0xfe20) &&\n     (uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar22) || (gVar2 != 0xff09)) goto LAB_0014d7d9;\n    output[1] = '\t';\n    iVar22 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  builtin_strncpy(output + 1,"\x1b[Z",4);\n  local_224 = 0;\n  iVar22 = 4;\nLAB_0014d7d9:\n  if (iVar9 != 0) {\n    switch(gVar2) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar18 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar18 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar18 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar18 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((event->state & 4) == 0) {\n      if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }\n    }\n    else {\n      output[1] = pcVar18[2];\n    }\n    wVar10 = L'\x02' - iVar12;\n    local_228 = 0;\n    iVar22 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar7) {\n    switch(gVar2) {\n    case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar9 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar9 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar9 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);\n      iVar22 = 4;\n    }\n    else {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n  uVar11 = event->keyval;\n  switch(uVar11) {\n  case 0xffbe:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar21 = 0;\nLAB_0014dbfe:\n    if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n    if (iVar20 != 0) goto LAB_0014dce7;\n    bVar7 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 == 0) {\n      if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar19 = event->state;\n  uVar21 = uVar19 & 4;\nLAB_0014e24b:\n  iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n  if (iVar20 == 0) {\n    bVar7 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar9 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;\n      builtin_strncpy(codes,"HL.FIG",7);\n      if (local_228 == 3) {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);\n      iVar9 = 8;\n      switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }\n      if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }\n      if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);\n      iVar22 = 4;\n    }\nLAB_0014d90a:\n    wVar10 = iVar22 - iVar12;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar7 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar9 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar22 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)) {\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)) {\n      puVar16 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }\n      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);\n      iVar22 = iVar22 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }\nLAB_0014e155:\n    wVar10 = iVar22 - iVar12;\n    if (wVar10 < L'\x01') goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar8) {\n    output[iVar22] = '\0';\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');\n    }\n  }\n  else if (*(int *)((long)data + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }\n  show_mouseptr((gui_data *)data,L'\0');\n  term_seen_key_event(*(Terminal **)((long)data + 0xda0));\nLAB_0014cf81:\n  if (lVar3 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return 1;\n}\n\n" comment comment (function_definition "gint key_event(GtkWidget *widget,GdkEventKey *event,gpointer data)\n\n{\n  char cVar1;\n  guint gVar2;\n  long lVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  wchar_t wVar10;\n  uint uVar11;\n  int iVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  undefined *puVar16;\n  ulong uVar17;\n  char *pcVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  long in_FS_OFFSET;\n  byte bVar23;\n  int local_228;\n  int local_224;\n  wchar_t local_220;\n  wchar_t wlen;\n  wchar_t *wp;\n  wchar_t ucsoutput [2];\n  char codes [49];\n  char output [256];\n  \n  bVar23 = 0;\n  lVar3 = *(long *)(in_FS_OFFSET + 0x28);\n  *(guint32 *)((long)data + 0x22e0) = event->time;\n  if (event->type == GDK_KEY_RELEASE) {\n    if (((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||\n       (*(int *)((long)data + 0xd6c) < 2)) {\n      iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);\n      if (iVar12 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    output[0] = (char)*(int *)((long)data + 0xd68);\n    if (*(int *)((long)data + 0xd10) != 0) {\n      iVar12 = 0;\n      wVar10 = L'\x01';\n      goto LAB_0014d003;\n    }\n    local_220 = L'\x01';\n    wVar10 = L'\x01';\n    iVar12 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (event->type != GDK_KEY_PRESS) goto LAB_0014cf81;\n  if (event->keyval - 0xffe7 < 4) {\n    *(undefined4 *)((long)data + 0xd68) = 0xffffffff;\n    *(undefined4 *)((long)data + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)((long)data + 0x2300) & event->state) != 0) &&\n     (iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2)) {\n    iVar9 = 8;\n    switch(event->keyval) {\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0;\n      break;\n    default:\n      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar12 != -1) {\n      iVar9 = iVar9 + iVar12 * 10;\n    }\n    *(int *)((long)data + 0xd68) = iVar9;\n    *(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar17._0_4_ = event->state;\n  uVar17._4_4_ = event->keyval;\n  uVar13 = uVar17 & 0xffffffff00000004;\n  if (uVar13 == 0x3e00000004) {\n    change_font_size((gui_data *)data,L'\x01');\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0x3c00000004) {\n    change_font_size((gui_data *)data,L'\xffffffff');\n    goto LAB_0014cf81;\n  }\n  uVar17 = uVar17 & 0xffffffff00000001;\n  if (uVar17 == 0xff5500000001) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0xff5500000004) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff');\n    goto LAB_0014cf81;\n  }\n  if (uVar17 == 0xff5600000001) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0xff5600000004) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01');\n    goto LAB_0014cf81;\n  }\n  if (uVar17 == 0xff6300000001) {\n    request_paste(data);\n    goto LAB_0014cf81;\n  }\n  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0) ||\n     (iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0)) {\n    bVar7 = false;\nLAB_0014d16b:\n    output[0] = '\x1b';\n    if (((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&\n       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0)) goto LAB_0014cf81;\n  }\n  else {\n    output[0] = '\x1b';\n    uVar11 = event->keyval - 0xff7f;\n    if (0x3a < uVar11) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    bVar7 = true;\n  }\n  lVar14 = -1;\n  pcVar18 = event->string;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    cVar1 = *pcVar18;\n    pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  wlen = mb_to_wc(L'\xffff',L'\0',event->string,~(uint)lVar14 + L'\xffffffff',ucsoutput,L'\x1f');\n  wp = ucsoutput;\n  wVar10 = charset_from_unicode\n                     (&wp,&wlen,output + 1,L'þ',L'7',(charset_state *)0x0,(char *)0x0,L'\0');\n  output[wVar10 + L'\x01'] = '\0';\n  if ((output[1] == '\0') && (wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10)) {\n    ucsoutput[0] = L'\x1b';\n    local_224 = 1;\n    iVar22 = 2;\n    ucsoutput[1] = wVar10;\n  }\n  else {\n    output[0xff] = '\0';\n    lVar14 = -1;\n    pcVar18 = output;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar22 = ~(uint)lVar14 - 1;\n    local_224 = 0;\n  }\n  uVar11 = event->state;\n  if ((*(uint *)((long)data + 0x2300) & uVar11) == 0) {\n    iVar12 = 1;\nLAB_0014d45d:\n    if (output[1] == '\0') {\n      uVar13._0_4_ = event->state;\n      uVar13._4_4_ = event->keyval;\n      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }\n    goto LAB_0014d51c;\n  }\n  iVar12 = 0;\n  if (iVar22 != 1) goto LAB_0014d45d;\n  if (output[1] == '\0') {\n    uVar6._0_4_ = event->state;\n    uVar6._4_4_ = event->keyval;\n    if ((uVar6 & 0xffffffff00000004) != 0x6000000004) {\n      iVar22 = 0;\n      iVar12 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar12 = 0;\nLAB_0014d4ea:\n    output[1] = '\x1c';\n    if ((uVar11 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    local_224 = 0;\n    iVar22 = 2;\n  }\n  else {\n    iVar22 = 0;\n    iVar12 = 0;\nLAB_0014d51c:\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    if ((uVar15 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  gVar2 = event->keyval;\n  if (gVar2 == 0xff0d) {\n    output[1] = '\r';\n    bVar8 = true;\n    local_224 = 0;\n    iVar22 = 2;\nLAB_0014d670:\n    local_220 = L'7';\n    if ((uVar15 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n      output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;\n      local_220 = L'7';\n      local_224 = 0;\n      bVar8 = true;\n      iVar22 = 2;\n    }\n  }\n  else {\n    if (output[1] != '\0') {\n      bVar8 = false;\n      goto LAB_0014d670;\n    }\n    if ((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)) {\n      iVar22 = 2;\n      local_224 = 0;\n    }\n    bVar8 = false;\n    if ((uVar15 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    output[1] = -0x60;\n    local_220 = L'\x01';\n    local_224 = 0;\n    bVar8 = false;\n    iVar22 = 2;\n  }\n  uVar4._0_4_ = event->state;\n  uVar4._4_4_ = event->keyval;\n  if ((uVar4 & 0xffffffff00000001) == 0xff0800000001) {\n    iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n    output[1] = (-(iVar22 == 0) & 0x77U) + 8;\n    local_224 = 0;\n    bVar8 = true;\n    iVar22 = 2;\n  }\n  gVar2 = event->keyval;\n  if ((gVar2 != 0xfe20) &&\n     (uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar22) || (gVar2 != 0xff09)) goto LAB_0014d7d9;\n    output[1] = '\t';\n    iVar22 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  builtin_strncpy(output + 1,"\x1b[Z",4);\n  local_224 = 0;\n  iVar22 = 4;\nLAB_0014d7d9:\n  if (iVar9 != 0) {\n    switch(gVar2) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar18 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar18 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar18 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar18 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((event->state & 4) == 0) {\n      if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }\n    }\n    else {\n      output[1] = pcVar18[2];\n    }\n    wVar10 = L'\x02' - iVar12;\n    local_228 = 0;\n    iVar22 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar7) {\n    switch(gVar2) {\n    case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar9 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar9 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar9 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);\n      iVar22 = 4;\n    }\n    else {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n  uVar11 = event->keyval;\n  switch(uVar11) {\n  case 0xffbe:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar21 = 0;\nLAB_0014dbfe:\n    if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n    if (iVar20 != 0) goto LAB_0014dce7;\n    bVar7 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 == 0) {\n      if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar19 = event->state;\n  uVar21 = uVar19 & 4;\nLAB_0014e24b:\n  iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n  if (iVar20 == 0) {\n    bVar7 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar9 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;\n      builtin_strncpy(codes,"HL.FIG",7);\n      if (local_228 == 3) {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);\n      iVar9 = 8;\n      switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }\n      if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }\n      if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);\n      iVar22 = 4;\n    }\nLAB_0014d90a:\n    wVar10 = iVar22 - iVar12;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar7 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar9 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar22 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)) {\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)) {\n      puVar16 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }\n      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);\n      iVar22 = iVar22 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }\nLAB_0014e155:\n    wVar10 = iVar22 - iVar12;\n    if (wVar10 < L'\x01') goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar8) {\n    output[iVar22] = '\0';\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');\n    }\n  }\n  else if (*(int *)((long)data + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }\n  show_mouseptr((gui_data *)data,L'\0');\n  term_seen_key_event(*(Terminal **)((long)data + 0xda0));\nLAB_0014cf81:\n  if (lVar3 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return 1;\n}" type_identifier (function_declarator "key_event(GtkWidget *widget,GdkEventKey *event,gpointer data)" identifier (parameter_list "(GtkWidget *widget,GdkEventKey *event,gpointer data)" ( (parameter_declaration "GtkWidget *widget" type_identifier (pointer_declarator "*widget" * identifier)) , (parameter_declaration "GdkEventKey *event" type_identifier (pointer_declarator "*event" * identifier)) , (parameter_declaration "gpointer data" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  guint gVar2;\n  long lVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  bool bVar7;\n  bool bVar8;\n  int iVar9;\n  wchar_t wVar10;\n  uint uVar11;\n  int iVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  undefined *puVar16;\n  ulong uVar17;\n  char *pcVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  long in_FS_OFFSET;\n  byte bVar23;\n  int local_228;\n  int local_224;\n  wchar_t local_220;\n  wchar_t wlen;\n  wchar_t *wp;\n  wchar_t ucsoutput [2];\n  char codes [49];\n  char output [256];\n  \n  bVar23 = 0;\n  lVar3 = *(long *)(in_FS_OFFSET + 0x28);\n  *(guint32 *)((long)data + 0x22e0) = event->time;\n  if (event->type == GDK_KEY_RELEASE) {\n    if (((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||\n       (*(int *)((long)data + 0xd6c) < 2)) {\n      iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);\n      if (iVar12 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    output[0] = (char)*(int *)((long)data + 0xd68);\n    if (*(int *)((long)data + 0xd10) != 0) {\n      iVar12 = 0;\n      wVar10 = L'\x01';\n      goto LAB_0014d003;\n    }\n    local_220 = L'\x01';\n    wVar10 = L'\x01';\n    iVar12 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (event->type != GDK_KEY_PRESS) goto LAB_0014cf81;\n  if (event->keyval - 0xffe7 < 4) {\n    *(undefined4 *)((long)data + 0xd68) = 0xffffffff;\n    *(undefined4 *)((long)data + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)((long)data + 0x2300) & event->state) != 0) &&\n     (iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2)) {\n    iVar9 = 8;\n    switch(event->keyval) {\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0;\n      break;\n    default:\n      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar12 != -1) {\n      iVar9 = iVar9 + iVar12 * 10;\n    }\n    *(int *)((long)data + 0xd68) = iVar9;\n    *(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar17._0_4_ = event->state;\n  uVar17._4_4_ = event->keyval;\n  uVar13 = uVar17 & 0xffffffff00000004;\n  if (uVar13 == 0x3e00000004) {\n    change_font_size((gui_data *)data,L'\x01');\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0x3c00000004) {\n    change_font_size((gui_data *)data,L'\xffffffff');\n    goto LAB_0014cf81;\n  }\n  uVar17 = uVar17 & 0xffffffff00000001;\n  if (uVar17 == 0xff5500000001) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0xff5500000004) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff');\n    goto LAB_0014cf81;\n  }\n  if (uVar17 == 0xff5600000001) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar13 == 0xff5600000004) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01');\n    goto LAB_0014cf81;\n  }\n  if (uVar17 == 0xff6300000001) {\n    request_paste(data);\n    goto LAB_0014cf81;\n  }\n  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0) ||\n     (iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0)) {\n    bVar7 = false;\nLAB_0014d16b:\n    output[0] = '\x1b';\n    if (((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&\n       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0)) goto LAB_0014cf81;\n  }\n  else {\n    output[0] = '\x1b';\n    uVar11 = event->keyval - 0xff7f;\n    if (0x3a < uVar11) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    bVar7 = true;\n  }\n  lVar14 = -1;\n  pcVar18 = event->string;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    cVar1 = *pcVar18;\n    pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  wlen = mb_to_wc(L'\xffff',L'\0',event->string,~(uint)lVar14 + L'\xffffffff',ucsoutput,L'\x1f');\n  wp = ucsoutput;\n  wVar10 = charset_from_unicode\n                     (&wp,&wlen,output + 1,L'þ',L'7',(charset_state *)0x0,(char *)0x0,L'\0');\n  output[wVar10 + L'\x01'] = '\0';\n  if ((output[1] == '\0') && (wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10)) {\n    ucsoutput[0] = L'\x1b';\n    local_224 = 1;\n    iVar22 = 2;\n    ucsoutput[1] = wVar10;\n  }\n  else {\n    output[0xff] = '\0';\n    lVar14 = -1;\n    pcVar18 = output;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar22 = ~(uint)lVar14 - 1;\n    local_224 = 0;\n  }\n  uVar11 = event->state;\n  if ((*(uint *)((long)data + 0x2300) & uVar11) == 0) {\n    iVar12 = 1;\nLAB_0014d45d:\n    if (output[1] == '\0') {\n      uVar13._0_4_ = event->state;\n      uVar13._4_4_ = event->keyval;\n      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }\n    goto LAB_0014d51c;\n  }\n  iVar12 = 0;\n  if (iVar22 != 1) goto LAB_0014d45d;\n  if (output[1] == '\0') {\n    uVar6._0_4_ = event->state;\n    uVar6._4_4_ = event->keyval;\n    if ((uVar6 & 0xffffffff00000004) != 0x6000000004) {\n      iVar22 = 0;\n      iVar12 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar12 = 0;\nLAB_0014d4ea:\n    output[1] = '\x1c';\n    if ((uVar11 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    local_224 = 0;\n    iVar22 = 2;\n  }\n  else {\n    iVar22 = 0;\n    iVar12 = 0;\nLAB_0014d51c:\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    if ((uVar15 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  gVar2 = event->keyval;\n  if (gVar2 == 0xff0d) {\n    output[1] = '\r';\n    bVar8 = true;\n    local_224 = 0;\n    iVar22 = 2;\nLAB_0014d670:\n    local_220 = L'7';\n    if ((uVar15 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n      output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;\n      local_220 = L'7';\n      local_224 = 0;\n      bVar8 = true;\n      iVar22 = 2;\n    }\n  }\n  else {\n    if (output[1] != '\0') {\n      bVar8 = false;\n      goto LAB_0014d670;\n    }\n    if ((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)) {\n      iVar22 = 2;\n      local_224 = 0;\n    }\n    bVar8 = false;\n    if ((uVar15 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    output[1] = -0x60;\n    local_220 = L'\x01';\n    local_224 = 0;\n    bVar8 = false;\n    iVar22 = 2;\n  }\n  uVar4._0_4_ = event->state;\n  uVar4._4_4_ = event->keyval;\n  if ((uVar4 & 0xffffffff00000001) == 0xff0800000001) {\n    iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n    output[1] = (-(iVar22 == 0) & 0x77U) + 8;\n    local_224 = 0;\n    bVar8 = true;\n    iVar22 = 2;\n  }\n  gVar2 = event->keyval;\n  if ((gVar2 != 0xfe20) &&\n     (uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar22) || (gVar2 != 0xff09)) goto LAB_0014d7d9;\n    output[1] = '\t';\n    iVar22 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  builtin_strncpy(output + 1,"\x1b[Z",4);\n  local_224 = 0;\n  iVar22 = 4;\nLAB_0014d7d9:\n  if (iVar9 != 0) {\n    switch(gVar2) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar18 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar18 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar18 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar18 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((event->state & 4) == 0) {\n      if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }\n    }\n    else {\n      output[1] = pcVar18[2];\n    }\n    wVar10 = L'\x02' - iVar12;\n    local_228 = 0;\n    iVar22 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar7) {\n    switch(gVar2) {\n    case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar9 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar9 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar9 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);\n      iVar22 = 4;\n    }\n    else {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n  uVar11 = event->keyval;\n  switch(uVar11) {\n  case 0xffbe:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar21 = 0;\nLAB_0014dbfe:\n    if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n    if (iVar20 != 0) goto LAB_0014dce7;\n    bVar7 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 == 0) {\n      if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar19 = event->state;\n  uVar21 = uVar19 & 4;\nLAB_0014e24b:\n  iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n  if (iVar20 == 0) {\n    bVar7 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar9 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;\n      builtin_strncpy(codes,"HL.FIG",7);\n      if (local_228 == 3) {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);\n      iVar9 = 8;\n      switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }\n      if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }\n      if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);\n      iVar22 = 4;\n    }\nLAB_0014d90a:\n    wVar10 = iVar22 - iVar12;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar7 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar9 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar22 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)) {\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)) {\n      puVar16 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }\n      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);\n      iVar22 = iVar22 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }\nLAB_0014e155:\n    wVar10 = iVar22 - iVar12;\n    if (wVar10 < L'\x01') goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar8) {\n    output[iVar22] = '\0';\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');\n    }\n  }\n  else if (*(int *)((long)data + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }\n  show_mouseptr((gui_data *)data,L'\0');\n  term_seen_key_event(*(Terminal **)((long)data + 0xda0));\nLAB_0014cf81:\n  if (lVar3 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "guint gVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "wchar_t wVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "int local_228;" primitive_type identifier ;) (declaration "int local_224;" primitive_type identifier ;) (declaration "wchar_t local_220;" type_identifier identifier ;) (declaration "wchar_t wlen;" type_identifier identifier ;) (declaration "wchar_t *wp;" type_identifier (pointer_declarator "*wp" * identifier) ;) (declaration "wchar_t ucsoutput [2];" type_identifier (array_declarator "ucsoutput [2]" identifier [ number_literal ]) ;) (declaration "char codes [49];" primitive_type (array_declarator "codes [49]" identifier [ number_literal ]) ;) (declaration "char output [256];" primitive_type (array_declarator "output [256]" identifier [ number_literal ]) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "lVar3 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar3 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(guint32 *)((long)data + 0x22e0) = event->time;" (assignment_expression "*(guint32 *)((long)data + 0x22e0) = event->time" (pointer_expression "*(guint32 *)((long)data + 0x22e0)" * (cast_expression "(guint32 *)((long)data + 0x22e0)" ( (type_descriptor "guint32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0x22e0)" ( (binary_expression "(long)data + 0x22e0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "event->time" identifier -> field_identifier)) ;) (if_statement "if (event->type == GDK_KEY_RELEASE) {\n    if (((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||\n       (*(int *)((long)data + 0xd6c) < 2)) {\n      iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);\n      if (iVar12 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    output[0] = (char)*(int *)((long)data + 0xd68);\n    if (*(int *)((long)data + 0xd10) != 0) {\n      iVar12 = 0;\n      wVar10 = L'\x01';\n      goto LAB_0014d003;\n    }\n    local_220 = L'\x01';\n    wVar10 = L'\x01';\n    iVar12 = 0;\n    goto LAB_0014e201;\n  }" if (parenthesized_expression "(event->type == GDK_KEY_RELEASE)" ( (binary_expression "event->type == GDK_KEY_RELEASE" (field_expression "event->type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    if (((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||\n       (*(int *)((long)data + 0xd6c) < 2)) {\n      iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);\n      if (iVar12 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    output[0] = (char)*(int *)((long)data + 0xd68);\n    if (*(int *)((long)data + 0xd10) != 0) {\n      iVar12 = 0;\n      wVar10 = L'\x01';\n      goto LAB_0014d003;\n    }\n    local_220 = L'\x01';\n    wVar10 = L'\x01';\n    iVar12 = 0;\n    goto LAB_0014e201;\n  }" { (if_statement "if (((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||\n       (*(int *)((long)data + 0xd6c) < 2)) {\n      iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);\n      if (iVar12 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }" if (parenthesized_expression "(((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||\n       (*(int *)((long)data + 0xd6c) < 2))" ( (binary_expression "((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||\n       (*(int *)((long)data + 0xd6c) < 2)" (parenthesized_expression "((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0))" ( (binary_expression "(3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)" (parenthesized_expression "(3 < event->keyval - 0xffe7)" ( (binary_expression "3 < event->keyval - 0xffe7" number_literal < (binary_expression "event->keyval - 0xffe7" (field_expression "event->keyval" identifier -> field_identifier) - number_literal)) )) || (parenthesized_expression "(*(int *)((long)data + 0xd68) < 0)" ( (binary_expression "*(int *)((long)data + 0xd68) < 0" (pointer_expression "*(int *)((long)data + 0xd68)" * (cast_expression "(int *)((long)data + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd68)" ( (binary_expression "(long)data + 0xd68" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < number_literal) ))) )) || (parenthesized_expression "(*(int *)((long)data + 0xd6c) < 2)" ( (binary_expression "*(int *)((long)data + 0xd6c) < 2" (pointer_expression "*(int *)((long)data + 0xd6c)" * (cast_expression "(int *)((long)data + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd6c)" ( (binary_expression "(long)data + 0xd6c" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n      iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);\n      if (iVar12 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }" { (expression_statement "iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event);" (assignment_expression "iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event)" identifier = (call_expression "gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event)" identifier (argument_list "(*(undefined8 *)((long)data + 0x68),event)" ( (pointer_expression "*(undefined8 *)((long)data + 0x68)" * (cast_expression "(undefined8 *)((long)data + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0x68)" ( (binary_expression "(long)data + 0x68" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar12 != 0) goto LAB_0014cf81;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) (goto_statement "goto LAB_0014cf74;" goto statement_identifier ;) })) (expression_statement "output[0] = (char)*(int *)((long)data + 0xd68);" (assignment_expression "output[0] = (char)*(int *)((long)data + 0xd68)" (subscript_expression "output[0]" identifier [ number_literal ]) = (cast_expression "(char)*(int *)((long)data + 0xd68)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(int *)((long)data + 0xd68)" * (cast_expression "(int *)((long)data + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd68)" ( (binary_expression "(long)data + 0xd68" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) (if_statement "if (*(int *)((long)data + 0xd10) != 0) {\n      iVar12 = 0;\n      wVar10 = L'\x01';\n      goto LAB_0014d003;\n    }" if (parenthesized_expression "(*(int *)((long)data + 0xd10) != 0)" ( (binary_expression "*(int *)((long)data + 0xd10) != 0" (pointer_expression "*(int *)((long)data + 0xd10)" * (cast_expression "(int *)((long)data + 0xd10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd10)" ( (binary_expression "(long)data + 0xd10" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar12 = 0;\n      wVar10 = L'\x01';\n      goto LAB_0014d003;\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "wVar10 = L'\x01';" (assignment_expression "wVar10 = L'\x01'" identifier = (char_literal "L'\x01'" L' escape_sequence ')) ;) (goto_statement "goto LAB_0014d003;" goto statement_identifier ;) })) (expression_statement "local_220 = L'\x01';" (assignment_expression "local_220 = L'\x01'" identifier = (char_literal "L'\x01'" L' escape_sequence ')) ;) (expression_statement "wVar10 = L'\x01';" (assignment_expression "wVar10 = L'\x01'" identifier = (char_literal "L'\x01'" L' escape_sequence ')) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014e201;" goto statement_identifier ;) })) (labeled_statement "LAB_0014cf74:\n  if (event->type != GDK_KEY_PRESS) goto LAB_0014cf81;" statement_identifier : (if_statement "if (event->type != GDK_KEY_PRESS) goto LAB_0014cf81;" if (parenthesized_expression "(event->type != GDK_KEY_PRESS)" ( (binary_expression "event->type != GDK_KEY_PRESS" (field_expression "event->type" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;))) (if_statement "if (event->keyval - 0xffe7 < 4) {\n    *(undefined4 *)((long)data + 0xd68) = 0xffffffff;\n    *(undefined4 *)((long)data + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(event->keyval - 0xffe7 < 4)" ( (binary_expression "event->keyval - 0xffe7 < 4" (binary_expression "event->keyval - 0xffe7" (field_expression "event->keyval" identifier -> field_identifier) - number_literal) < number_literal) )) (compound_statement "{\n    *(undefined4 *)((long)data + 0xd68) = 0xffffffff;\n    *(undefined4 *)((long)data + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }" { (expression_statement "*(undefined4 *)((long)data + 0xd68) = 0xffffffff;" (assignment_expression "*(undefined4 *)((long)data + 0xd68) = 0xffffffff" (pointer_expression "*(undefined4 *)((long)data + 0xd68)" * (cast_expression "(undefined4 *)((long)data + 0xd68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd68)" ( (binary_expression "(long)data + 0xd68" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)data + 0xd6c) = 0;" (assignment_expression "*(undefined4 *)((long)data + 0xd6c) = 0" (pointer_expression "*(undefined4 *)((long)data + 0xd6c)" * (cast_expression "(undefined4 *)((long)data + 0xd6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd6c)" ( (binary_expression "(long)data + 0xd6c" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (((*(uint *)((long)data + 0x2300) & event->state) != 0) &&\n     (iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2)) {\n    iVar9 = 8;\n    switch(event->keyval) {\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0;\n      break;\n    default:\n      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar12 != -1) {\n      iVar9 = iVar9 + iVar12 * 10;\n    }\n    *(int *)((long)data + 0xd68) = iVar9;\n    *(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(((*(uint *)((long)data + 0x2300) & event->state) != 0) &&\n     (iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2))" ( (binary_expression "((*(uint *)((long)data + 0x2300) & event->state) != 0) &&\n     (iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2)" (parenthesized_expression "((*(uint *)((long)data + 0x2300) & event->state) != 0)" ( (binary_expression "(*(uint *)((long)data + 0x2300) & event->state) != 0" (parenthesized_expression "(*(uint *)((long)data + 0x2300) & event->state)" ( (binary_expression "*(uint *)((long)data + 0x2300) & event->state" (pointer_expression "*(uint *)((long)data + 0x2300)" * (cast_expression "(uint *)((long)data + 0x2300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0x2300)" ( (binary_expression "(long)data + 0x2300" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & (field_expression "event->state" identifier -> field_identifier)) )) != number_literal) )) && (parenthesized_expression "(iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2)" ( (comma_expression "iVar12 = *(int *)((long)data + 0xd68), iVar12 != -2" (assignment_expression "iVar12 = *(int *)((long)data + 0xd68)" identifier = (pointer_expression "*(int *)((long)data + 0xd68)" * (cast_expression "(int *)((long)data + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd68)" ( (binary_expression "(long)data + 0xd68" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) , (binary_expression "iVar12 != -2" identifier != number_literal)) ))) )) (compound_statement "{\n    iVar9 = 8;\n    switch(event->keyval) {\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0;\n      break;\n    default:\n      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar12 != -1) {\n      iVar9 = iVar9 + iVar12 * 10;\n    }\n    *(int *)((long)data + 0xd68) = iVar9;\n    *(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }" { (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (switch_statement "switch(event->keyval) {\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0;\n      break;\n    default:\n      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }" switch (parenthesized_expression "(event->keyval)" ( (field_expression "event->keyval" identifier -> field_identifier) )) (compound_statement "{\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0;\n      break;\n    default:\n      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }" { (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      iVar9 = 7;\n      break;" case number_literal : (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      iVar9 = 4;\n      break;" case number_literal : (expression_statement "iVar9 = 4;" (assignment_expression "iVar9 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      iVar9 = 6;\n      break;" case number_literal : (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      iVar9 = 2;\n      break;" case number_literal : (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      iVar9 = 9;\n      break;" case number_literal : (expression_statement "iVar9 = 9;" (assignment_expression "iVar9 = 9" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      iVar9 = 3;\n      break;" case number_literal : (expression_statement "iVar9 = 3;" (assignment_expression "iVar9 = 3" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      iVar9 = 1;\n      break;" case number_literal : (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      iVar9 = 5;\n      break;" case number_literal : (expression_statement "iVar9 = 5;" (assignment_expression "iVar9 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9e:" case number_literal :) (case_statement "case 0xffb0:\n      iVar9 = 0;\n      break;" case number_literal : (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n      *(undefined4 *)((long)data + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;" default : (expression_statement "*(undefined4 *)((long)data + 0xd68) = 0xfffffffe;" (assignment_expression "*(undefined4 *)((long)data + 0xd68) = 0xfffffffe" (pointer_expression "*(undefined4 *)((long)data + 0xd68)" * (cast_expression "(undefined4 *)((long)data + 0xd68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd68)" ( (binary_expression "(long)data + 0xd68" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0014d090;" goto statement_identifier ;)) })) (if_statement "if (iVar12 != -1) {\n      iVar9 = iVar9 + iVar12 * 10;\n    }" if (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) (compound_statement "{\n      iVar9 = iVar9 + iVar12 * 10;\n    }" { (expression_statement "iVar9 = iVar9 + iVar12 * 10;" (assignment_expression "iVar9 = iVar9 + iVar12 * 10" identifier = (binary_expression "iVar9 + iVar12 * 10" identifier + (binary_expression "iVar12 * 10" identifier * number_literal))) ;) })) (expression_statement "*(int *)((long)data + 0xd68) = iVar9;" (assignment_expression "*(int *)((long)data + 0xd68) = iVar9" (pointer_expression "*(int *)((long)data + 0xd68)" * (cast_expression "(int *)((long)data + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd68)" ( (binary_expression "(long)data + 0xd68" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1;" (assignment_expression "*(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1" (pointer_expression "*(int *)((long)data + 0xd6c)" * (cast_expression "(int *)((long)data + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd6c)" ( (binary_expression "(long)data + 0xd6c" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((long)data + 0xd6c) + 1" (pointer_expression "*(int *)((long)data + 0xd6c)" * (cast_expression "(int *)((long)data + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd6c)" ( (binary_expression "(long)data + 0xd6c" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (labeled_statement "LAB_0014d090:\n  uVar17._0_4_ = event->state;" statement_identifier : (expression_statement "uVar17._0_4_ = event->state;" (assignment_expression "uVar17._0_4_ = event->state" (field_expression "uVar17._0_4_" identifier . field_identifier) = (field_expression "event->state" identifier -> field_identifier)) ;)) (expression_statement "uVar17._4_4_ = event->keyval;" (assignment_expression "uVar17._4_4_ = event->keyval" (field_expression "uVar17._4_4_" identifier . field_identifier) = (field_expression "event->keyval" identifier -> field_identifier)) ;) (expression_statement "uVar13 = uVar17 & 0xffffffff00000004;" (assignment_expression "uVar13 = uVar17 & 0xffffffff00000004" identifier = (binary_expression "uVar17 & 0xffffffff00000004" identifier & number_literal)) ;) (if_statement "if (uVar13 == 0x3e00000004) {\n    change_font_size((gui_data *)data,L'\x01');\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar13 == 0x3e00000004)" ( (binary_expression "uVar13 == 0x3e00000004" identifier == number_literal) )) (compound_statement "{\n    change_font_size((gui_data *)data,L'\x01');\n    goto LAB_0014cf81;\n  }" { (expression_statement "change_font_size((gui_data *)data,L'\x01');" (call_expression "change_font_size((gui_data *)data,L'\x01')" identifier (argument_list "((gui_data *)data,L'\x01')" ( (cast_expression "(gui_data *)data" ( (type_descriptor "gui_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (char_literal "L'\x01'" L' escape_sequence ') ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar13 == 0x3c00000004) {\n    change_font_size((gui_data *)data,L'\xffffffff');\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar13 == 0x3c00000004)" ( (binary_expression "uVar13 == 0x3c00000004" identifier == number_literal) )) (compound_statement "{\n    change_font_size((gui_data *)data,L'\xffffffff');\n    goto LAB_0014cf81;\n  }" { (expression_statement "change_font_size((gui_data *)data,L'\xffffffff');" (call_expression "change_font_size((gui_data *)data,L'\xffffffff')" identifier (argument_list "((gui_data *)data,L'\xffffffff')" ( (cast_expression "(gui_data *)data" ( (type_descriptor "gui_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (char_literal "L'\xffffffff'" L' escape_sequence character character character character ') ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (expression_statement "uVar17 = uVar17 & 0xffffffff00000001;" (assignment_expression "uVar17 = uVar17 & 0xffffffff00000001" identifier = (binary_expression "uVar17 & 0xffffffff00000001" identifier & number_literal)) ;) (if_statement "if (uVar17 == 0xff5500000001) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar17 == 0xff5500000001)" ( (binary_expression "uVar17 == 0xff5500000001" identifier == number_literal) )) (compound_statement "{\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }" { (expression_statement "term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2));" (call_expression "term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2))" identifier (argument_list "(*(Terminal **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2))" ( (pointer_expression "*(Terminal **)((long)data + 0xda0)" * (cast_expression "(Terminal **)((long)data + 0xda0)" ( (type_descriptor "Terminal **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (char_literal "L'\0'" L' escape_sequence ') , (unary_expression "-(*(int *)((long)data + 0xd58) / 2)" - (parenthesized_expression "(*(int *)((long)data + 0xd58) / 2)" ( (binary_expression "*(int *)((long)data + 0xd58) / 2" (pointer_expression "*(int *)((long)data + 0xd58)" * (cast_expression "(int *)((long)data + 0xd58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd58)" ( (binary_expression "(long)data + 0xd58" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) / number_literal) ))) ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar13 == 0xff5500000004) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff');\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar13 == 0xff5500000004)" ( (binary_expression "uVar13 == 0xff5500000004" identifier == number_literal) )) (compound_statement "{\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff');\n    goto LAB_0014cf81;\n  }" { (expression_statement "term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff');" (call_expression "term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff')" identifier (argument_list "(*(Terminal **)((long)data + 0xda0),L'\0',L'\xffffffff')" ( (pointer_expression "*(Terminal **)((long)data + 0xda0)" * (cast_expression "(Terminal **)((long)data + 0xda0)" ( (type_descriptor "Terminal **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (char_literal "L'\0'" L' escape_sequence ') , (char_literal "L'\xffffffff'" L' escape_sequence character character character character ') ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar17 == 0xff5600000001) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar17 == 0xff5600000001)" ( (binary_expression "uVar17 == 0xff5600000001" identifier == number_literal) )) (compound_statement "{\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }" { (expression_statement "term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2);" (call_expression "term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2)" identifier (argument_list "(*(Terminal **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2)" ( (pointer_expression "*(Terminal **)((long)data + 0xda0)" * (cast_expression "(Terminal **)((long)data + 0xda0)" ( (type_descriptor "Terminal **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (char_literal "L'\0'" L' escape_sequence ') , (binary_expression "*(int *)((long)data + 0xd58) / 2" (pointer_expression "*(int *)((long)data + 0xd58)" * (cast_expression "(int *)((long)data + 0xd58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd58)" ( (binary_expression "(long)data + 0xd58" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) / number_literal) ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar13 == 0xff5600000004) {\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01');\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar13 == 0xff5600000004)" ( (binary_expression "uVar13 == 0xff5600000004" identifier == number_literal) )) (compound_statement "{\n    term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01');\n    goto LAB_0014cf81;\n  }" { (expression_statement "term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01');" (call_expression "term_scroll(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01')" identifier (argument_list "(*(Terminal **)((long)data + 0xda0),L'\0',L'\x01')" ( (pointer_expression "*(Terminal **)((long)data + 0xda0)" * (cast_expression "(Terminal **)((long)data + 0xda0)" ( (type_descriptor "Terminal **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (char_literal "L'\0'" L' escape_sequence ') , (char_literal "L'\x01'" L' escape_sequence ') ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar17 == 0xff6300000001) {\n    request_paste(data);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar17 == 0xff6300000001)" ( (binary_expression "uVar17 == 0xff6300000001" identifier == number_literal) )) (compound_statement "{\n    request_paste(data);\n    goto LAB_0014cf81;\n  }" { (expression_statement "request_paste(data);" (call_expression "request_paste(data)" identifier (argument_list "(data)" ( identifier ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (expression_statement "iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x4e);" (assignment_expression "iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x4e)" identifier = (call_expression "conf_get_int(*(Conf **)((long)data + 0x22d0),0x4e)" identifier (argument_list "(*(Conf **)((long)data + 0x22d0),0x4e)" ( (pointer_expression "*(Conf **)((long)data + 0x22d0)" * (cast_expression "(Conf **)((long)data + 0x22d0)" ( (type_descriptor "Conf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0x22d0)" ( (binary_expression "(long)data + 0x22d0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal )))) ;) (if_statement "if ((*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0) ||\n     (iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0)) {\n    bVar7 = false;\nLAB_0014d16b:\n    output[0] = '\x1b';\n    if (((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&\n       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0)) goto LAB_0014cf81;\n  }\n  else {\n    output[0] = '\x1b';\n    uVar11 = event->keyval - 0xff7f;\n    if (0x3a < uVar11) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    bVar7 = true;\n  }" if (parenthesized_expression "((*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0) ||\n     (iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0))" ( (binary_expression "(*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0) ||\n     (iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0)" (parenthesized_expression "(*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0)" ( (binary_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0" (pointer_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1ac)" * (cast_expression "(int *)(*(long *)((long)data + 0xda0) + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)data + 0xda0) + 0x1ac)" ( (binary_expression "*(long *)((long)data + 0xda0) + 0x1ac" (pointer_expression "*(long *)((long)data + 0xda0)" * (cast_expression "(long *)((long)data + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0)" ( (comma_expression "iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43), iVar12 != 0" (assignment_expression "iVar12 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x43)" identifier = (call_expression "conf_get_int(*(Conf **)((long)data + 0x22d0),0x43)" identifier (argument_list "(*(Conf **)((long)data + 0x22d0),0x43)" ( (pointer_expression "*(Conf **)((long)data + 0x22d0)" * (cast_expression "(Conf **)((long)data + 0x22d0)" ( (type_descriptor "Conf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0x22d0)" ( (binary_expression "(long)data + 0x22d0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    bVar7 = false;\nLAB_0014d16b:\n    output[0] = '\x1b';\n    if (((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&\n       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0)) goto LAB_0014cf81;\n  }" { (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (labeled_statement "LAB_0014d16b:\n    output[0] = '\x1b';" statement_identifier : (expression_statement "output[0] = '\x1b';" (assignment_expression "output[0] = '\x1b'" (subscript_expression "output[0]" identifier [ number_literal ]) = (char_literal "'\x1b'" ' escape_sequence ')) ;)) (if_statement "if (((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&\n       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0)) goto LAB_0014cf81;" if (parenthesized_expression "(((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&\n       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0))" ( (binary_expression "((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&\n       (iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0)" (parenthesized_expression "((iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1))))" ( (binary_expression "(iVar9 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))" (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) || (parenthesized_expression "((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))" ( (parenthesized_expression "(8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1))" ( (binary_expression "8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)" (binary_expression "8 < event->keyval - 0xff95" number_literal < (binary_expression "event->keyval - 0xff95" (field_expression "event->keyval" identifier -> field_identifier) - number_literal)) && (parenthesized_expression "(8 < event->keyval - 0xffb1)" ( (binary_expression "8 < event->keyval - 0xffb1" number_literal < (binary_expression "event->keyval - 0xffb1" (field_expression "event->keyval" identifier -> field_identifier) - number_literal)) ))) )) ))) )) && (parenthesized_expression "(iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0)" ( (comma_expression "iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event),\n       iVar12 != 0" (assignment_expression "iVar12 = gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event)" identifier = (call_expression "gtk_im_context_filter_keypress(*(undefined8 *)((long)data + 0x68),event)" identifier (argument_list "(*(undefined8 *)((long)data + 0x68),event)" ( (pointer_expression "*(undefined8 *)((long)data + 0x68)" * (cast_expression "(undefined8 *)((long)data + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0x68)" ( (binary_expression "(long)data + 0x68" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) }) (else_clause "else {\n    output[0] = '\x1b';\n    uVar11 = event->keyval - 0xff7f;\n    if (0x3a < uVar11) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    bVar7 = true;\n  }" else (compound_statement "{\n    output[0] = '\x1b';\n    uVar11 = event->keyval - 0xff7f;\n    if (0x3a < uVar11) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }\n    bVar7 = true;\n  }" { (expression_statement "output[0] = '\x1b';" (assignment_expression "output[0] = '\x1b'" (subscript_expression "output[0]" identifier [ number_literal ]) = (char_literal "'\x1b'" ' escape_sequence ')) ;) (expression_statement "uVar11 = event->keyval - 0xff7f;" (assignment_expression "uVar11 = event->keyval - 0xff7f" identifier = (binary_expression "event->keyval - 0xff7f" (field_expression "event->keyval" identifier -> field_identifier) - number_literal)) ;) (if_statement "if (0x3a < uVar11) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }" if (parenthesized_expression "(0x3a < uVar11)" ( (binary_expression "0x3a < uVar11" number_literal < identifier) )) (compound_statement "{\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (goto_statement "goto LAB_0014d16b;" goto statement_identifier ;) })) (if_statement "if ((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0) {\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }" if (parenthesized_expression "((0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0)" ( (binary_expression "(0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1) == 0" (parenthesized_expression "(0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1)" ( (binary_expression "0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f) & 1" (binary_expression "0x7ffd801ffc04001U >> ((ulong)uVar11 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar11 & 0x3f)" ( (binary_expression "(ulong)uVar11 & 0x3f" (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar7 = true;\n      goto LAB_0014d16b;\n    }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (goto_statement "goto LAB_0014d16b;" goto statement_identifier ;) })) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }))) (expression_statement "lVar14 = -1;" (assignment_expression "lVar14 = -1" identifier = number_literal) ;) (expression_statement "pcVar18 = event->string;" (assignment_expression "pcVar18 = event->string" identifier = (field_expression "event->string" identifier -> field_identifier)) ;) (do_statement "do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    cVar1 = *pcVar18;\n    pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    cVar1 = *pcVar18;\n    pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n  }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar18;" (assignment_expression "cVar1 = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) (expression_statement "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pcVar18 + (ulong)bVar23 * -2 + 1" (binary_expression "pcVar18 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "wlen = mb_to_wc(L'\xffff',L'\0',event->string,~(uint)lVar14 + L'\xffffffff',ucsoutput,L'\x1f');" (assignment_expression "wlen = mb_to_wc(L'\xffff',L'\0',event->string,~(uint)lVar14 + L'\xffffffff',ucsoutput,L'\x1f')" identifier = (call_expression "mb_to_wc(L'\xffff',L'\0',event->string,~(uint)lVar14 + L'\xffffffff',ucsoutput,L'\x1f')" identifier (argument_list "(L'\xffff',L'\0',event->string,~(uint)lVar14 + L'\xffffffff',ucsoutput,L'\x1f')" ( (char_literal "L'\xffff'" L' escape_sequence ') , (char_literal "L'\0'" L' escape_sequence ') , (field_expression "event->string" identifier -> field_identifier) , (binary_expression "~(uint)lVar14 + L'\xffffffff'" (unary_expression "~(uint)lVar14" ~ (cast_expression "(uint)lVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) + (char_literal "L'\xffffffff'" L' escape_sequence character character character character ')) , identifier , (char_literal "L'\x1f'" L' escape_sequence ') )))) ;) (expression_statement "wp = ucsoutput;" (assignment_expression "wp = ucsoutput" identifier = identifier) ;) (expression_statement "wVar10 = charset_from_unicode\n                     (&wp,&wlen,output + 1,L'þ',L'7',(charset_state *)0x0,(char *)0x0,L'\0');" (assignment_expression "wVar10 = charset_from_unicode\n                     (&wp,&wlen,output + 1,L'þ',L'7',(charset_state *)0x0,(char *)0x0,L'\0')" identifier = (call_expression "charset_from_unicode\n                     (&wp,&wlen,output + 1,L'þ',L'7',(charset_state *)0x0,(char *)0x0,L'\0')" identifier (argument_list "(&wp,&wlen,output + 1,L'þ',L'7',(charset_state *)0x0,(char *)0x0,L'\0')" ( (pointer_expression "&wp" & identifier) , (pointer_expression "&wlen" & identifier) , (binary_expression "output + 1" identifier + number_literal) , (char_literal "L'þ'" L' character ') , (char_literal "L'7'" L' character ') , (cast_expression "(charset_state *)0x0" ( (type_descriptor "charset_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (char_literal "L'\0'" L' escape_sequence ') )))) ;) (expression_statement "output[wVar10 + L'\x01'] = '\0';" (assignment_expression "output[wVar10 + L'\x01'] = '\0'" (subscript_expression "output[wVar10 + L'\x01']" identifier [ (binary_expression "wVar10 + L'\x01'" identifier + (char_literal "L'\x01'" L' escape_sequence ')) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((output[1] == '\0') && (wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10)) {\n    ucsoutput[0] = L'\x1b';\n    local_224 = 1;\n    iVar22 = 2;\n    ucsoutput[1] = wVar10;\n  }\n  else {\n    output[0xff] = '\0';\n    lVar14 = -1;\n    pcVar18 = output;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar22 = ~(uint)lVar14 - 1;\n    local_224 = 0;\n  }" if (parenthesized_expression "((output[1] == '\0') && (wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10))" ( (binary_expression "(output[1] == '\0') && (wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10)" (parenthesized_expression "(output[1] == '\0')" ( (binary_expression "output[1] == '\0'" (subscript_expression "output[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10)" ( (comma_expression "wVar10 = keysym_to_unicode(event->keyval), L'\xffffffff' < wVar10" (assignment_expression "wVar10 = keysym_to_unicode(event->keyval)" identifier = (call_expression "keysym_to_unicode(event->keyval)" identifier (argument_list "(event->keyval)" ( (field_expression "event->keyval" identifier -> field_identifier) )))) , (binary_expression "L'\xffffffff' < wVar10" (char_literal "L'\xffffffff'" L' escape_sequence character character character character ') < identifier)) ))) )) (compound_statement "{\n    ucsoutput[0] = L'\x1b';\n    local_224 = 1;\n    iVar22 = 2;\n    ucsoutput[1] = wVar10;\n  }" { (expression_statement "ucsoutput[0] = L'\x1b';" (assignment_expression "ucsoutput[0] = L'\x1b'" (subscript_expression "ucsoutput[0]" identifier [ number_literal ]) = (char_literal "L'\x1b'" L' escape_sequence ')) ;) (expression_statement "local_224 = 1;" (assignment_expression "local_224 = 1" identifier = number_literal) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) (expression_statement "ucsoutput[1] = wVar10;" (assignment_expression "ucsoutput[1] = wVar10" (subscript_expression "ucsoutput[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    output[0xff] = '\0';\n    lVar14 = -1;\n    pcVar18 = output;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar22 = ~(uint)lVar14 - 1;\n    local_224 = 0;\n  }" else (compound_statement "{\n    output[0xff] = '\0';\n    lVar14 = -1;\n    pcVar18 = output;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar22 = ~(uint)lVar14 - 1;\n    local_224 = 0;\n  }" { (expression_statement "output[0xff] = '\0';" (assignment_expression "output[0xff] = '\0'" (subscript_expression "output[0xff]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar14 = -1;" (assignment_expression "lVar14 = -1" identifier = number_literal) ;) (expression_statement "pcVar18 = output;" (assignment_expression "pcVar18 = output" identifier = identifier) ;) (do_statement "do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar18;" (assignment_expression "cVar1 = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) (expression_statement "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pcVar18 + (ulong)bVar23 * -2 + 1" (binary_expression "pcVar18 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar22 = ~(uint)lVar14 - 1;" (assignment_expression "iVar22 = ~(uint)lVar14 - 1" identifier = (binary_expression "~(uint)lVar14 - 1" (unary_expression "~(uint)lVar14" ~ (cast_expression "(uint)lVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar11 = event->state;" (assignment_expression "uVar11 = event->state" identifier = (field_expression "event->state" identifier -> field_identifier)) ;) (if_statement "if ((*(uint *)((long)data + 0x2300) & uVar11) == 0) {\n    iVar12 = 1;\nLAB_0014d45d:\n    if (output[1] == '\0') {\n      uVar13._0_4_ = event->state;\n      uVar13._4_4_ = event->keyval;\n      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }\n    goto LAB_0014d51c;\n  }" if (parenthesized_expression "((*(uint *)((long)data + 0x2300) & uVar11) == 0)" ( (binary_expression "(*(uint *)((long)data + 0x2300) & uVar11) == 0" (parenthesized_expression "(*(uint *)((long)data + 0x2300) & uVar11)" ( (binary_expression "*(uint *)((long)data + 0x2300) & uVar11" (pointer_expression "*(uint *)((long)data + 0x2300)" * (cast_expression "(uint *)((long)data + 0x2300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0x2300)" ( (binary_expression "(long)data + 0x2300" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & identifier) )) == number_literal) )) (compound_statement "{\n    iVar12 = 1;\nLAB_0014d45d:\n    if (output[1] == '\0') {\n      uVar13._0_4_ = event->state;\n      uVar13._4_4_ = event->keyval;\n      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }\n    goto LAB_0014d51c;\n  }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0014d45d:\n    if (output[1] == '\0') {\n      uVar13._0_4_ = event->state;\n      uVar13._4_4_ = event->keyval;\n      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }" statement_identifier : (if_statement "if (output[1] == '\0') {\n      uVar13._0_4_ = event->state;\n      uVar13._4_4_ = event->keyval;\n      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }" if (parenthesized_expression "(output[1] == '\0')" ( (binary_expression "output[1] == '\0'" (subscript_expression "output[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar13._0_4_ = event->state;\n      uVar13._4_4_ = event->keyval;\n      if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;\n    }" { (expression_statement "uVar13._0_4_ = event->state;" (assignment_expression "uVar13._0_4_ = event->state" (field_expression "uVar13._0_4_" identifier . field_identifier) = (field_expression "event->state" identifier -> field_identifier)) ;) (expression_statement "uVar13._4_4_ = event->keyval;" (assignment_expression "uVar13._4_4_ = event->keyval" (field_expression "uVar13._4_4_" identifier . field_identifier) = (field_expression "event->keyval" identifier -> field_identifier)) ;) (if_statement "if ((uVar13 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;" if (parenthesized_expression "((uVar13 & 0xffffffff00000004) == 0x6000000004)" ( (binary_expression "(uVar13 & 0xffffffff00000004) == 0x6000000004" (parenthesized_expression "(uVar13 & 0xffffffff00000004)" ( (binary_expression "uVar13 & 0xffffffff00000004" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0014d4ea;" goto statement_identifier ;)) (if_statement "if (((uVar11 & 4) != 0) && (iVar22 == 2)) goto LAB_0014d49c;" if (parenthesized_expression "(((uVar11 & 4) != 0) && (iVar22 == 2))" ( (binary_expression "((uVar11 & 4) != 0) && (iVar22 == 2)" (parenthesized_expression "((uVar11 & 4) != 0)" ( (binary_expression "(uVar11 & 4) != 0" (parenthesized_expression "(uVar11 & 4)" ( (binary_expression "uVar11 & 4" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar22 == 2)" ( (binary_expression "iVar22 == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_0014d49c;" goto statement_identifier ;)) }) (else_clause "else if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }" else (if_statement "if (((uVar11 & 4) != 0) && (iVar22 == 2)) {\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }" if (parenthesized_expression "(((uVar11 & 4) != 0) && (iVar22 == 2))" ( (binary_expression "((uVar11 & 4) != 0) && (iVar22 == 2)" (parenthesized_expression "((uVar11 & 4) != 0)" ( (binary_expression "(uVar11 & 4) != 0" (parenthesized_expression "(uVar11 & 4)" ( (binary_expression "uVar11 & 4" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar22 == 2)" ( (binary_expression "iVar22 == 2" identifier == number_literal) ))) )) (compound_statement "{\n      if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;\n      output[1] = output[1] + -0x18;\n    }" { (if_statement "if (4 < (byte)(output[1] - 0x33U)) goto LAB_0014d4a6;" if (parenthesized_expression "(4 < (byte)(output[1] - 0x33U))" ( (binary_expression "4 < (byte)(output[1] - 0x33U)" number_literal < (call_expression "(byte)(output[1] - 0x33U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(output[1] - 0x33U)" ( (binary_expression "output[1] - 0x33U" (subscript_expression "output[1]" identifier [ number_literal ]) - number_literal) )))) )) (goto_statement "goto LAB_0014d4a6;" goto statement_identifier ;)) (expression_statement "output[1] = output[1] + -0x18;" (assignment_expression "output[1] = output[1] + -0x18" (subscript_expression "output[1]" identifier [ number_literal ]) = (binary_expression "output[1] + -0x18" (subscript_expression "output[1]" identifier [ number_literal ]) + number_literal)) ;) }))))) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar22 != 1) goto LAB_0014d45d;" if (parenthesized_expression "(iVar22 != 1)" ( (binary_expression "iVar22 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0014d45d;" goto statement_identifier ;)) (if_statement "if (output[1] == '\0') {\n    uVar6._0_4_ = event->state;\n    uVar6._4_4_ = event->keyval;\n    if ((uVar6 & 0xffffffff00000004) != 0x6000000004) {\n      iVar22 = 0;\n      iVar12 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar12 = 0;\nLAB_0014d4ea:\n    output[1] = '\x1c';\n    if ((uVar11 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    local_224 = 0;\n    iVar22 = 2;\n  }\n  else {\n    iVar22 = 0;\n    iVar12 = 0;\nLAB_0014d51c:\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    if ((uVar15 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" if (parenthesized_expression "(output[1] == '\0')" ( (binary_expression "output[1] == '\0'" (subscript_expression "output[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar6._0_4_ = event->state;\n    uVar6._4_4_ = event->keyval;\n    if ((uVar6 & 0xffffffff00000004) != 0x6000000004) {\n      iVar22 = 0;\n      iVar12 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar12 = 0;\nLAB_0014d4ea:\n    output[1] = '\x1c';\n    if ((uVar11 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    local_224 = 0;\n    iVar22 = 2;\n  }" { (expression_statement "uVar6._0_4_ = event->state;" (assignment_expression "uVar6._0_4_ = event->state" (field_expression "uVar6._0_4_" identifier . field_identifier) = (field_expression "event->state" identifier -> field_identifier)) ;) (expression_statement "uVar6._4_4_ = event->keyval;" (assignment_expression "uVar6._4_4_ = event->keyval" (field_expression "uVar6._4_4_" identifier . field_identifier) = (field_expression "event->keyval" identifier -> field_identifier)) ;) (if_statement "if ((uVar6 & 0xffffffff00000004) != 0x6000000004) {\n      iVar22 = 0;\n      iVar12 = 0;\n      goto LAB_0014d51c;\n    }" if (parenthesized_expression "((uVar6 & 0xffffffff00000004) != 0x6000000004)" ( (binary_expression "(uVar6 & 0xffffffff00000004) != 0x6000000004" (parenthesized_expression "(uVar6 & 0xffffffff00000004)" ( (binary_expression "uVar6 & 0xffffffff00000004" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar22 = 0;\n      iVar12 = 0;\n      goto LAB_0014d51c;\n    }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d4ea:\n    output[1] = '\x1c';" statement_identifier : (expression_statement "output[1] = '\x1c';" (assignment_expression "output[1] = '\x1c'" (subscript_expression "output[1]" identifier [ number_literal ]) = (char_literal "'\x1c'" ' escape_sequence ')) ;)) (if_statement "if ((uVar11 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }" if (parenthesized_expression "((uVar11 & 4) != 0)" ( (binary_expression "(uVar11 & 4) != 0" (parenthesized_expression "(uVar11 & 4)" ( (binary_expression "uVar11 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }" { (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d49c:\nLAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" statement_identifier : (labeled_statement "LAB_0014d4a6:\n      if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" statement_identifier : (if_statement "if ((output[1] == '2') || (output[1] == ' ')) {\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }\n      else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "((output[1] == '2') || (output[1] == ' '))" ( (binary_expression "(output[1] == '2') || (output[1] == ' ')" (parenthesized_expression "(output[1] == '2')" ( (binary_expression "output[1] == '2'" (subscript_expression "output[1]" identifier [ number_literal ]) == (char_literal "'2'" ' character ')) )) || (parenthesized_expression "(output[1] == ' ')" ( (binary_expression "output[1] == ' '" (subscript_expression "output[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) ))) )) (compound_statement "{\n        output._1_4_ = (uint)(uint3)output._2_3_ << 8;\n        iVar22 = 2;\n      }" { (expression_statement "output._1_4_ = (uint)(uint3)output._2_3_ << 8;" (assignment_expression "output._1_4_ = (uint)(uint3)output._2_3_ << 8" (field_expression "output._1_4_" identifier . field_identifier) = (binary_expression "(uint)(uint3)output._2_3_ << 8" (cast_expression "(uint)(uint3)output._2_3_" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(uint3)output._2_3_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "output._2_3_" identifier . field_identifier))) << number_literal)) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) }) (else_clause "else if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" else (if_statement "if (output[1] == '8') {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "(output[1] == '8')" ( (binary_expression "output[1] == '8'" (subscript_expression "output[1]" identifier [ number_literal ]) == (char_literal "'8'" ' character ')) )) (compound_statement "{\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }" { (expression_statement "output[1] = '\x7f';" (assignment_expression "output[1] = '\x7f'" (subscript_expression "output[1]" identifier [ number_literal ]) = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) }) (else_clause "else if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" else (if_statement "if (output[1] == '/') {\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }\n      else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "(output[1] == '/')" ( (binary_expression "output[1] == '/'" (subscript_expression "output[1]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        output[1] = '\x1f';\n        iVar22 = 2;\n      }" { (expression_statement "output[1] = '\x1f';" (assignment_expression "output[1] = '\x1f'" (subscript_expression "output[1]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" else (compound_statement "{\n        iVar22 = 2;\n        if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }\n      }" { (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) (if_statement "if ((byte)(output[1] - 0x40U) < 0x3f) {\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }" if (parenthesized_expression "((byte)(output[1] - 0x40U) < 0x3f)" ( (binary_expression "(byte)(output[1] - 0x40U) < 0x3f" (call_expression "(byte)(output[1] - 0x40U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(output[1] - 0x40U)" ( (binary_expression "output[1] - 0x40U" (subscript_expression "output[1]" identifier [ number_literal ]) - number_literal) ))) < number_literal) )) (compound_statement "{\n          output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;\n        }" { (expression_statement "output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f;" (assignment_expression "output._1_4_ = CONCAT31(output._2_3_,output[1]) & 0xffffff1f" (field_expression "output._1_4_" identifier . field_identifier) = (binary_expression "CONCAT31(output._2_3_,output[1]) & 0xffffff1f" (call_expression "CONCAT31(output._2_3_,output[1])" identifier (argument_list "(output._2_3_,output[1])" ( (field_expression "output._2_3_" identifier . field_identifier) , (subscript_expression "output[1]" identifier [ number_literal ]) ))) & number_literal)) ;) })) }))))))))) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "uVar15._0_4_ = event->state;" (assignment_expression "uVar15._0_4_ = event->state" (field_expression "uVar15._0_4_" identifier . field_identifier) = (field_expression "event->state" identifier -> field_identifier)) ;) (expression_statement "uVar15._4_4_ = event->keyval;" (assignment_expression "uVar15._4_4_ = event->keyval" (field_expression "uVar15._4_4_" identifier . field_identifier) = (field_expression "event->keyval" identifier -> field_identifier)) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    iVar22 = 0;\n    iVar12 = 0;\nLAB_0014d51c:\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    if ((uVar15 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" else (compound_statement "{\n    iVar22 = 0;\n    iVar12 = 0;\nLAB_0014d51c:\n    uVar15._0_4_ = event->state;\n    uVar15._4_4_ = event->keyval;\n    if ((uVar15 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d51c:\n    uVar15._0_4_ = event->state;" statement_identifier : (expression_statement "uVar15._0_4_ = event->state;" (assignment_expression "uVar15._0_4_ = event->state" (field_expression "uVar15._0_4_" identifier . field_identifier) = (field_expression "event->state" identifier -> field_identifier)) ;)) (expression_statement "uVar15._4_4_ = event->keyval;" (assignment_expression "uVar15._4_4_ = event->keyval" (field_expression "uVar15._4_4_" identifier . field_identifier) = (field_expression "event->keyval" identifier -> field_identifier)) ;) (if_statement "if ((uVar15 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }" if (parenthesized_expression "((uVar15 & 0xffffffff00000004) == 0xff6b00000004)" ( (binary_expression "(uVar15 & 0xffffffff00000004) == 0xff6b00000004" (parenthesized_expression "(uVar15 & 0xffffffff00000004)" ( (binary_expression "uVar15 & 0xffffffff00000004" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }" { (if_statement "if (*(long *)((long)data + 0xd90) != 0) {\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }" if (parenthesized_expression "(*(long *)((long)data + 0xd90) != 0)" ( (binary_expression "*(long *)((long)data + 0xd90) != 0" (pointer_expression "*(long *)((long)data + 0xd90)" * (cast_expression "(long *)((long)data + 0xd90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd90)" ( (binary_expression "(long)data + 0xd90" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);\n      }" { (expression_statement "(**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1);" (call_expression "(**(code **)(*(long *)((long)data + 0xd90) + 0x30))(*(undefined8 *)((long)data + 0xd98),1)" (parenthesized_expression "(**(code **)(*(long *)((long)data + 0xd90) + 0x30))" ( (pointer_expression "**(code **)(*(long *)((long)data + 0xd90) + 0x30)" * (pointer_expression "*(code **)(*(long *)((long)data + 0xd90) + 0x30)" * (cast_expression "(code **)(*(long *)((long)data + 0xd90) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)((long)data + 0xd90) + 0x30)" ( (binary_expression "*(long *)((long)data + 0xd90) + 0x30" (pointer_expression "*(long *)((long)data + 0xd90)" * (cast_expression "(long *)((long)data + 0xd90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd90)" ( (binary_expression "(long)data + 0xd90" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined8 *)((long)data + 0xd98),1)" ( (pointer_expression "*(undefined8 *)((long)data + 0xd98)" * (cast_expression "(undefined8 *)((long)data + 0xd98)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd98)" ( (binary_expression "(long)data + 0xd98" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal ))) ;) })) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) }))) (expression_statement "gVar2 = event->keyval;" (assignment_expression "gVar2 = event->keyval" identifier = (field_expression "event->keyval" identifier -> field_identifier)) ;) (if_statement "if (gVar2 == 0xff0d) {\n    output[1] = '\r';\n    bVar8 = true;\n    local_224 = 0;\n    iVar22 = 2;\nLAB_0014d670:\n    local_220 = L'7';\n    if ((uVar15 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n      output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;\n      local_220 = L'7';\n      local_224 = 0;\n      bVar8 = true;\n      iVar22 = 2;\n    }\n  }\n  else {\n    if (output[1] != '\0') {\n      bVar8 = false;\n      goto LAB_0014d670;\n    }\n    if ((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)) {\n      iVar22 = 2;\n      local_224 = 0;\n    }\n    bVar8 = false;\n    if ((uVar15 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    output[1] = -0x60;\n    local_220 = L'\x01';\n    local_224 = 0;\n    bVar8 = false;\n    iVar22 = 2;\n  }" if (parenthesized_expression "(gVar2 == 0xff0d)" ( (binary_expression "gVar2 == 0xff0d" identifier == number_literal) )) (compound_statement "{\n    output[1] = '\r';\n    bVar8 = true;\n    local_224 = 0;\n    iVar22 = 2;\nLAB_0014d670:\n    local_220 = L'7';\n    if ((uVar15 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n      output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;\n      local_220 = L'7';\n      local_224 = 0;\n      bVar8 = true;\n      iVar22 = 2;\n    }\n  }" { (expression_statement "output[1] = '\r';" (assignment_expression "output[1] = '\r'" (subscript_expression "output[1]" identifier [ number_literal ]) = (char_literal "'\r'" ' escape_sequence ')) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) (labeled_statement "LAB_0014d670:\n    local_220 = L'7';" statement_identifier : (expression_statement "local_220 = L'7';" (assignment_expression "local_220 = L'7'" identifier = (char_literal "L'7'" L' character ')) ;)) (if_statement "if ((uVar15 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n      output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;\n      local_220 = L'7';\n      local_224 = 0;\n      bVar8 = true;\n      iVar22 = 2;\n    }" if (parenthesized_expression "((uVar15 & 0xffffffff00000001) == 0xff0800000000)" ( (binary_expression "(uVar15 & 0xffffffff00000001) == 0xff0800000000" (parenthesized_expression "(uVar15 & 0xffffffff00000001)" ( (binary_expression "uVar15 & 0xffffffff00000001" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n      output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;\n      local_220 = L'7';\n      local_224 = 0;\n      bVar8 = true;\n      iVar22 = 2;\n    }" { (expression_statement "iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);" (assignment_expression "iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f)" identifier = (call_expression "conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f)" identifier (argument_list "(*(Conf **)((long)data + 0x22d0),0x3f)" ( (pointer_expression "*(Conf **)((long)data + 0x22d0)" * (cast_expression "(Conf **)((long)data + 0x22d0)" ( (type_descriptor "Conf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0x22d0)" ( (binary_expression "(long)data + 0x22d0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal )))) ;) (expression_statement "output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f;" (assignment_expression "output[1] = (-(iVar22 == 0) & 0x89U) + 0x7f" (subscript_expression "output[1]" identifier [ number_literal ]) = (binary_expression "(-(iVar22 == 0) & 0x89U) + 0x7f" (parenthesized_expression "(-(iVar22 == 0) & 0x89U)" ( (binary_expression "-(iVar22 == 0) & 0x89U" (unary_expression "-(iVar22 == 0)" - (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) ))) & number_literal) )) + number_literal)) ;) (expression_statement "local_220 = L'7';" (assignment_expression "local_220 = L'7'" identifier = (char_literal "L'7'" L' character ')) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) })) }) (else_clause "else {\n    if (output[1] != '\0') {\n      bVar8 = false;\n      goto LAB_0014d670;\n    }\n    if ((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)) {\n      iVar22 = 2;\n      local_224 = 0;\n    }\n    bVar8 = false;\n    if ((uVar15 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    output[1] = -0x60;\n    local_220 = L'\x01';\n    local_224 = 0;\n    bVar8 = false;\n    iVar22 = 2;\n  }" else (compound_statement "{\n    if (output[1] != '\0') {\n      bVar8 = false;\n      goto LAB_0014d670;\n    }\n    if ((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)) {\n      iVar22 = 2;\n      local_224 = 0;\n    }\n    bVar8 = false;\n    if ((uVar15 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    output[1] = -0x60;\n    local_220 = L'\x01';\n    local_224 = 0;\n    bVar8 = false;\n    iVar22 = 2;\n  }" { (if_statement "if (output[1] != '\0') {\n      bVar8 = false;\n      goto LAB_0014d670;\n    }" if (parenthesized_expression "(output[1] != '\0')" ( (binary_expression "output[1] != '\0'" (subscript_expression "output[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar8 = false;\n      goto LAB_0014d670;\n    }" { (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (goto_statement "goto LAB_0014d670;" goto statement_identifier ;) })) (if_statement "if ((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)) {\n      iVar22 = 2;\n      local_224 = 0;\n    }" if (parenthesized_expression "((((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4))" ( (binary_expression "(((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)) && ((uVar11 & 5) == 4)" (parenthesized_expression "(((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32))" ( (binary_expression "((gVar2 - 0x20 & 0xffffffdf) == 0) || (gVar2 == 0x32)" (parenthesized_expression "((gVar2 - 0x20 & 0xffffffdf) == 0)" ( (binary_expression "(gVar2 - 0x20 & 0xffffffdf) == 0" (parenthesized_expression "(gVar2 - 0x20 & 0xffffffdf)" ( (binary_expression "gVar2 - 0x20 & 0xffffffdf" (binary_expression "gVar2 - 0x20" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(gVar2 == 0x32)" ( (binary_expression "gVar2 == 0x32" identifier == number_literal) ))) )) && (parenthesized_expression "((uVar11 & 5) == 4)" ( (binary_expression "(uVar11 & 5) == 4" (parenthesized_expression "(uVar11 & 5)" ( (binary_expression "uVar11 & 5" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      iVar22 = 2;\n      local_224 = 0;\n    }" { (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) })) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (if_statement "if ((uVar15 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;" if (parenthesized_expression "((uVar15 & 0xffffffff00000005) != 0x2000000005)" ( (binary_expression "(uVar15 & 0xffffffff00000005) != 0x2000000005" (parenthesized_expression "(uVar15 & 0xffffffff00000005)" ( (binary_expression "uVar15 & 0xffffffff00000005" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0014d670;" goto statement_identifier ;)) (expression_statement "output[1] = -0x60;" (assignment_expression "output[1] = -0x60" (subscript_expression "output[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_220 = L'\x01';" (assignment_expression "local_220 = L'\x01'" identifier = (char_literal "L'\x01'" L' escape_sequence ')) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) }))) (expression_statement "uVar4._0_4_ = event->state;" (assignment_expression "uVar4._0_4_ = event->state" (field_expression "uVar4._0_4_" identifier . field_identifier) = (field_expression "event->state" identifier -> field_identifier)) ;) (expression_statement "uVar4._4_4_ = event->keyval;" (assignment_expression "uVar4._4_4_ = event->keyval" (field_expression "uVar4._4_4_" identifier . field_identifier) = (field_expression "event->keyval" identifier -> field_identifier)) ;) (if_statement "if ((uVar4 & 0xffffffff00000001) == 0xff0800000001) {\n    iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n    output[1] = (-(iVar22 == 0) & 0x77U) + 8;\n    local_224 = 0;\n    bVar8 = true;\n    iVar22 = 2;\n  }" if (parenthesized_expression "((uVar4 & 0xffffffff00000001) == 0xff0800000001)" ( (binary_expression "(uVar4 & 0xffffffff00000001) == 0xff0800000001" (parenthesized_expression "(uVar4 & 0xffffffff00000001)" ( (binary_expression "uVar4 & 0xffffffff00000001" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);\n    output[1] = (-(iVar22 == 0) & 0x77U) + 8;\n    local_224 = 0;\n    bVar8 = true;\n    iVar22 = 2;\n  }" { (expression_statement "iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f);" (assignment_expression "iVar22 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f)" identifier = (call_expression "conf_get_int(*(Conf **)((long)data + 0x22d0),0x3f)" identifier (argument_list "(*(Conf **)((long)data + 0x22d0),0x3f)" ( (pointer_expression "*(Conf **)((long)data + 0x22d0)" * (cast_expression "(Conf **)((long)data + 0x22d0)" ( (type_descriptor "Conf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0x22d0)" ( (binary_expression "(long)data + 0x22d0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal )))) ;) (expression_statement "output[1] = (-(iVar22 == 0) & 0x77U) + 8;" (assignment_expression "output[1] = (-(iVar22 == 0) & 0x77U) + 8" (subscript_expression "output[1]" identifier [ number_literal ]) = (binary_expression "(-(iVar22 == 0) & 0x77U) + 8" (parenthesized_expression "(-(iVar22 == 0) & 0x77U)" ( (binary_expression "-(iVar22 == 0) & 0x77U" (unary_expression "-(iVar22 == 0)" - (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) ))) & number_literal) )) + number_literal)) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) })) (expression_statement "gVar2 = event->keyval;" (assignment_expression "gVar2 = event->keyval" identifier = (field_expression "event->keyval" identifier -> field_identifier)) ;) (if_statement "if ((gVar2 != 0xfe20) &&\n     (uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar22) || (gVar2 != 0xff09)) goto LAB_0014d7d9;\n    output[1] = '\t';\n    iVar22 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }" if (parenthesized_expression "((gVar2 != 0xfe20) &&\n     (uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001))" ( (binary_expression "(gVar2 != 0xfe20) &&\n     (uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001)" (parenthesized_expression "(gVar2 != 0xfe20)" ( (binary_expression "gVar2 != 0xfe20" identifier != number_literal) )) && (parenthesized_expression "(uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001)" ( (comma_expression "uVar5._0_4_ = event->state, uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001" (assignment_expression "uVar5._0_4_ = event->state" (field_expression "uVar5._0_4_" identifier . field_identifier) = (field_expression "event->state" identifier -> field_identifier)) , (comma_expression "uVar5._4_4_ = event->keyval,\n     (uVar5 & 0xffffffff00000001) != 0xff0900000001" (assignment_expression "uVar5._4_4_ = event->keyval" (field_expression "uVar5._4_4_" identifier . field_identifier) = (field_expression "event->keyval" identifier -> field_identifier)) , (binary_expression "(uVar5 & 0xffffffff00000001) != 0xff0900000001" (parenthesized_expression "(uVar5 & 0xffffffff00000001)" ( (binary_expression "uVar5 & 0xffffffff00000001" identifier & number_literal) )) != number_literal))) ))) )) (compound_statement "{\n    if ((1 < iVar22) || (gVar2 != 0xff09)) goto LAB_0014d7d9;\n    output[1] = '\t';\n    iVar22 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }" { (if_statement "if ((1 < iVar22) || (gVar2 != 0xff09)) goto LAB_0014d7d9;" if (parenthesized_expression "((1 < iVar22) || (gVar2 != 0xff09))" ( (binary_expression "(1 < iVar22) || (gVar2 != 0xff09)" (parenthesized_expression "(1 < iVar22)" ( (binary_expression "1 < iVar22" number_literal < identifier) )) || (parenthesized_expression "(gVar2 != 0xff09)" ( (binary_expression "gVar2 != 0xff09" identifier != number_literal) ))) )) (goto_statement "goto LAB_0014d7d9;" goto statement_identifier ;)) (expression_statement "output[1] = '\t';" (assignment_expression "output[1] = '\t'" (subscript_expression "output[1]" identifier [ number_literal ]) = (char_literal "'\t'" ' escape_sequence ')) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) (goto_statement "goto switchD_0014d8c5_caseD_ff80;" goto statement_identifier ;) })) (expression_statement "builtin_strncpy(output + 1,"\x1b[Z",4);" (call_expression "builtin_strncpy(output + 1,"\x1b[Z",4)" identifier (argument_list "(output + 1,"\x1b[Z",4)" ( (binary_expression "output + 1" identifier + number_literal) , (string_literal ""\x1b[Z"" " escape_sequence string_content ") , number_literal ))) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0014d7d9:\n  if (iVar9 != 0) {\n    switch(gVar2) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar18 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar18 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar18 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar18 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((event->state & 4) == 0) {\n      if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }\n    }\n    else {\n      output[1] = pcVar18[2];\n    }\n    wVar10 = L'\x02' - iVar12;\n    local_228 = 0;\n    iVar22 = 2;\n    goto LAB_0014e163;\n  }" statement_identifier : (if_statement "if (iVar9 != 0) {\n    switch(gVar2) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar18 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar18 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar18 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar18 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((event->state & 4) == 0) {\n      if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }\n    }\n    else {\n      output[1] = pcVar18[2];\n    }\n    wVar10 = L'\x02' - iVar12;\n    local_228 = 0;\n    iVar22 = 2;\n    goto LAB_0014e163;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    switch(gVar2) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar18 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar18 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar18 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar18 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((event->state & 4) == 0) {\n      if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }\n    }\n    else {\n      output[1] = pcVar18[2];\n    }\n    wVar10 = L'\x02' - iVar12;\n    local_228 = 0;\n    iVar22 = 2;\n    goto LAB_0014e163;\n  }" { (switch_statement "switch(gVar2) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar18 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar18 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar18 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar18 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }" switch (parenthesized_expression "(gVar2)" ( identifier )) (compound_statement "{\n    case 0xff95:\n    case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar18 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar18 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar18 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar18 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }" { (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      pcVar18 = "yY\x19";\n      break;" case number_literal : (expression_statement "pcVar18 = "yY\x19";" (assignment_expression "pcVar18 = "yY\x19"" identifier = (string_literal ""yY\x19"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      pcVar18 = "hH\b";\n      break;" case number_literal : (expression_statement "pcVar18 = "hH\b";" (assignment_expression "pcVar18 = "hH\b"" identifier = (string_literal ""hH\b"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      pcVar18 = "kK\v";\n      break;" case number_literal : (expression_statement "pcVar18 = "kK\v";" (assignment_expression "pcVar18 = "kK\v"" identifier = (string_literal ""kK\v"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      pcVar18 = "lL\f";\n      break;" case number_literal : (expression_statement "pcVar18 = "lL\f";" (assignment_expression "pcVar18 = "lL\f"" identifier = (string_literal ""lL\f"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      pcVar18 = "jJ\n";\n      break;" case number_literal : (expression_statement "pcVar18 = "jJ\n";" (assignment_expression "pcVar18 = "jJ\n"" identifier = (string_literal ""jJ\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      pcVar18 = "uU\x15";\n      break;" case number_literal : (expression_statement "pcVar18 = "uU\x15";" (assignment_expression "pcVar18 = "uU\x15"" identifier = (string_literal ""uU\x15"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      pcVar18 = "nN\x0e";\n      break;" case number_literal : (expression_statement "pcVar18 = "nN\x0e";" (assignment_expression "pcVar18 = "nN\x0e"" identifier = (string_literal ""nN\x0e"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      pcVar18 = "bB\x02";\n      break;" case number_literal : (expression_statement "pcVar18 = "bB\x02";" (assignment_expression "pcVar18 = "bB\x02"" identifier = (string_literal ""bB\x02"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      pcVar18 = "...";\n      break;" case number_literal : (expression_statement "pcVar18 = "...";" (assignment_expression "pcVar18 = "..."" identifier = (string_literal ""..."" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "default:\n      goto switchD_0014d802_caseD_ff9e;" default : (goto_statement "goto switchD_0014d802_caseD_ff9e;" goto statement_identifier ;)) })) (if_statement "if ((event->state & 4) == 0) {\n      if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }\n    }\n    else {\n      output[1] = pcVar18[2];\n    }" if (parenthesized_expression "((event->state & 4) == 0)" ( (binary_expression "(event->state & 4) == 0" (parenthesized_expression "(event->state & 4)" ( (binary_expression "event->state & 4" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }\n    }" { (if_statement "if ((event->state & 1) == 0) {\n        output[1] = *pcVar18;\n      }\n      else {\n        output[1] = pcVar18[1];\n      }" if (parenthesized_expression "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        output[1] = *pcVar18;\n      }" { (expression_statement "output[1] = *pcVar18;" (assignment_expression "output[1] = *pcVar18" (subscript_expression "output[1]" identifier [ number_literal ]) = (pointer_expression "*pcVar18" * identifier)) ;) }) (else_clause "else {\n        output[1] = pcVar18[1];\n      }" else (compound_statement "{\n        output[1] = pcVar18[1];\n      }" { (expression_statement "output[1] = pcVar18[1];" (assignment_expression "output[1] = pcVar18[1]" (subscript_expression "output[1]" identifier [ number_literal ]) = (subscript_expression "pcVar18[1]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n      output[1] = pcVar18[2];\n    }" else (compound_statement "{\n      output[1] = pcVar18[2];\n    }" { (expression_statement "output[1] = pcVar18[2];" (assignment_expression "output[1] = pcVar18[2]" (subscript_expression "output[1]" identifier [ number_literal ]) = (subscript_expression "pcVar18[2]" identifier [ number_literal ])) ;) }))) (expression_statement "wVar10 = L'\x02' - iVar12;" (assignment_expression "wVar10 = L'\x02' - iVar12" identifier = (binary_expression "L'\x02' - iVar12" (char_literal "L'\x02'" L' escape_sequence ') - identifier)) ;) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0014e163;" goto statement_identifier ;) }))) (labeled_statement "switchD_0014d802_caseD_ff9e:\n  if (bVar7) {\n    switch(gVar2) {\n    case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar9 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar9 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar9 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);\n      iVar22 = 4;\n    }\n    else {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }\n    goto LAB_0014d90a;\n  }" statement_identifier : (if_statement "if (bVar7) {\n    switch(gVar2) {\n    case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar9 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar9 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar9 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);\n      iVar22 = 4;\n    }\n    else {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }\n    goto LAB_0014d90a;\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    switch(gVar2) {\n    case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar9 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar9 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar9 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);\n      iVar22 = 4;\n    }\n    else {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }\n    goto LAB_0014d90a;\n  }" { (switch_statement "switch(gVar2) {\n    case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar9 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar9 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar9 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }" switch (parenthesized_expression "(gVar2)" ( identifier )) (compound_statement "{\n    case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar9 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar9 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar9 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar9 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar9 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar9 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar9 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar9 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar9 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar9 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar9 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar9 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }" { (case_statement "case 0xff7f:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar9 = 0x50;\n      goto LAB_0014d8e1;" case number_literal : (if_statement "if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }" if (parenthesized_expression "(*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)data + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)((long)data + 0xda0) + 0x1b0" (pointer_expression "*(long *)((long)data + 0xda0)" * (cast_expression "(long *)((long)data + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar9 = 0x50;\n        goto LAB_0014d978;\n      }" { (expression_statement "iVar9 = 0x50;" (assignment_expression "iVar9 = 0x50" identifier = number_literal) ;) (goto_statement "goto LAB_0014d978;" goto statement_identifier ;) })) (expression_statement "iVar9 = 0x50;" (assignment_expression "iVar9 = 0x50" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8e1;" goto statement_identifier ;)) (case_statement "default:\n      goto switchD_0014d8c5_caseD_ff80;" default : (goto_statement "goto switchD_0014d8c5_caseD_ff80;" goto statement_identifier ;)) (case_statement "case 0xff8d:\n      iVar9 = 0x4d;\n      break;" case number_literal : (expression_statement "iVar9 = 0x4d;" (assignment_expression "iVar9 = 0x4d" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      iVar9 = 0x77;\n      break;" case number_literal : (expression_statement "iVar9 = 0x77;" (assignment_expression "iVar9 = 0x77" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      iVar9 = 0x74;\n      break;" case number_literal : (expression_statement "iVar9 = 0x74;" (assignment_expression "iVar9 = 0x74" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      iVar9 = 0x78;\n      break;" case number_literal : (expression_statement "iVar9 = 0x78;" (assignment_expression "iVar9 = 0x78" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      iVar9 = 0x76;\n      break;" case number_literal : (expression_statement "iVar9 = 0x76;" (assignment_expression "iVar9 = 0x76" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      iVar9 = 0x72;\n      break;" case number_literal : (expression_statement "iVar9 = 0x72;" (assignment_expression "iVar9 = 0x72" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      iVar9 = 0x79;\n      break;" case number_literal : (expression_statement "iVar9 = 0x79;" (assignment_expression "iVar9 = 0x79" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      iVar9 = 0x73;\n      break;" case number_literal : (expression_statement "iVar9 = 0x73;" (assignment_expression "iVar9 = 0x73" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      iVar9 = 0x71;\n      break;" case number_literal : (expression_statement "iVar9 = 0x71;" (assignment_expression "iVar9 = 0x71" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      iVar9 = 0x75;\n      break;" case number_literal : (expression_statement "iVar9 = 0x75;" (assignment_expression "iVar9 = 0x75" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9e:" case number_literal :) (case_statement "case 0xffb0:\n      iVar9 = 0x70;\n      break;" case number_literal : (expression_statement "iVar9 = 0x70;" (assignment_expression "iVar9 = 0x70" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9f:" case number_literal :) (case_statement "case 0xffae:\n      iVar9 = 0x6e;\n      break;" case number_literal : (expression_statement "iVar9 = 0x6e;" (assignment_expression "iVar9 = 0x6e" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffaa:\n      iVar9 = 0x52;\n      goto LAB_0014d8cd;" case number_literal : (expression_statement "iVar9 = 0x52;" (assignment_expression "iVar9 = 0x52" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8cd;" goto statement_identifier ;)) (case_statement "case 0xffab:\n      iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);\n      if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }\n      break;" case number_literal : (expression_statement "iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);" (assignment_expression "iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41)" identifier = (call_expression "conf_get_int(*(Conf **)((long)data + 0x22d0),0x41)" identifier (argument_list "(*(Conf **)((long)data + 0x22d0),0x41)" ( (pointer_expression "*(Conf **)((long)data + 0x22d0)" * (cast_expression "(Conf **)((long)data + 0x22d0)" ( (type_descriptor "Conf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0x22d0)" ( (binary_expression "(long)data + 0x22d0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar9 == 2) {\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }\n      else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }" if (parenthesized_expression "(iVar9 == 2)" ( (binary_expression "iVar9 == 2" identifier == number_literal) )) (compound_statement "{\n        iVar9 = 0x6c - (uint)((event->state & 1) == 0);\n      }" { (expression_statement "iVar9 = 0x6c - (uint)((event->state & 1) == 0);" (assignment_expression "iVar9 = 0x6c - (uint)((event->state & 1) == 0)" identifier = (binary_expression "0x6c - (uint)((event->state & 1) == 0)" number_literal - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) ))))) ;) }) (else_clause "else {\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }" else (compound_statement "{\n        iVar9 = 0x6d - (uint)((event->state & 1) == 0);\n      }" { (expression_statement "iVar9 = 0x6d - (uint)((event->state & 1) == 0);" (assignment_expression "iVar9 = 0x6d - (uint)((event->state & 1) == 0)" identifier = (binary_expression "0x6d - (uint)((event->state & 1) == 0)" number_literal - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) ))))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0xffad:\n      iVar9 = 0x53;\n      goto LAB_0014d8cd;" case number_literal : (expression_statement "iVar9 = 0x53;" (assignment_expression "iVar9 = 0x53" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8cd;" goto statement_identifier ;)) (case_statement "case 0xffaf:\n      iVar9 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);\n      iVar22 = 3;\n      goto LAB_0014d90a;" case number_literal : (expression_statement "iVar9 = 0x51;" (assignment_expression "iVar9 = 0x51" identifier = number_literal) ;) (labeled_statement "LAB_0014d8cd:\n      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;" statement_identifier : (if_statement "if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;" if (parenthesized_expression "(*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)data + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)((long)data + 0xda0) + 0x1b0" (pointer_expression "*(long *)((long)data + 0xda0)" * (cast_expression "(long *)((long)data + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0014d978;" goto statement_identifier ;))) (labeled_statement "LAB_0014d8e1:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);" statement_identifier : (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f385,iVar9)" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f385,iVar9)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , identifier ))) ;)) (expression_statement "iVar22 = 3;" (assignment_expression "iVar22 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);\n      iVar22 = 4;\n    }\n    else {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }" if (parenthesized_expression "(*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)data + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)((long)data + 0xda0) + 0x1b0" (pointer_expression "*(long *)((long)data + 0xda0)" * (cast_expression "(long *)((long)data + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);\n      iVar22 = 4;\n    }" { (labeled_statement "LAB_0014d978:\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);" statement_identifier : (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f389,iVar9)" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f389,iVar9)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , identifier ))) ;)) (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }" else (compound_statement "{\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);\n      iVar22 = 4;\n    }" { (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_001827ed,iVar9)" identifier (argument_list "(output + 1,1,0xff,&DAT_001827ed,iVar9)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_001827ed" & identifier) , identifier ))) ;) (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (labeled_statement "switchD_0014d8c5_caseD_ff80:\n  iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);" statement_identifier : (expression_statement "iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41);" (assignment_expression "iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x41)" identifier = (call_expression "conf_get_int(*(Conf **)((long)data + 0x22d0),0x41)" identifier (argument_list "(*(Conf **)((long)data + 0x22d0),0x41)" ( (pointer_expression "*(Conf **)((long)data + 0x22d0)" * (cast_expression "(Conf **)((long)data + 0x22d0)" ( (type_descriptor "Conf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0x22d0)" ( (binary_expression "(long)data + 0x22d0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal )))) ;)) (expression_statement "uVar11 = event->keyval;" (assignment_expression "uVar11 = event->keyval" identifier = (field_expression "event->keyval" identifier -> field_identifier)) ;) (switch_statement "switch(uVar11) {\n  case 0xffbe:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar21 = 0;\nLAB_0014dbfe:\n    if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n    if (iVar20 != 0) goto LAB_0014dce7;\n    bVar7 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 == 0) {\n      if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }" switch (parenthesized_expression "(uVar11)" ( identifier )) (compound_statement "{\n  case 0xffbe:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar21 = 0;\nLAB_0014dbfe:\n    if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n    if (iVar20 != 0) goto LAB_0014dce7;\n    bVar7 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 == 0) {\n      if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }" { (case_statement "case 0xffbe:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x17" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff4" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffbf:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x18" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff4" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc0:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x19" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff4" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc1:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1a" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff4" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc2:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1c" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff3" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc3:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4) + 0x1d" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff4" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc4:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x1f" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff3" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc5:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar21 = 0;\nLAB_0014dbfe:\n    if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);\n    if (iVar20 != 0) goto LAB_0014dce7;\n    bVar7 = 10 < local_228;\n    goto LAB_0014dd14;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x20" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff3" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (labeled_statement "LAB_0014da2f:\n    uVar19 = event->state;" statement_identifier : (expression_statement "uVar19 = event->state;" (assignment_expression "uVar19 = event->state" identifier = (field_expression "event->state" identifier -> field_identifier)) ;)) (expression_statement "uVar21 = uVar19 & 4;" (assignment_expression "uVar21 = uVar19 & 4" identifier = (binary_expression "uVar19 & 4" identifier & number_literal)) ;) (if_statement "if (uVar21 != 0) goto LAB_0014e24b;" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014e24b;" goto statement_identifier ;)) (labeled_statement "LAB_0014dbca:\n    uVar21 = 0;" statement_identifier : (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0014dbfe:\n    if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;" statement_identifier : (if_statement "if ((iVar9 != 3) || (6 < local_228)) goto LAB_0014e24b;" if (parenthesized_expression "((iVar9 != 3) || (6 < local_228))" ( (binary_expression "(iVar9 != 3) || (6 < local_228)" (parenthesized_expression "(iVar9 != 3)" ( (binary_expression "iVar9 != 3" identifier != number_literal) )) || (parenthesized_expression "(6 < local_228)" ( (binary_expression "6 < local_228" number_literal < identifier) ))) )) (goto_statement "goto LAB_0014e24b;" goto statement_identifier ;))) (expression_statement "local_228 = (int)(char)(&DAT_00182a60)[local_228];" (assignment_expression "local_228 = (int)(char)(&DAT_00182a60)[local_228]" identifier = (cast_expression "(int)(char)(&DAT_00182a60)[local_228]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(&DAT_00182a60)[local_228]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&DAT_00182a60)[local_228]" (parenthesized_expression "(&DAT_00182a60)" ( (pointer_expression "&DAT_00182a60" & identifier) )) [ identifier ])))) ;) (expression_statement "iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);" (assignment_expression "iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" identifier = (pointer_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)data + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)((long)data + 0xda0) + 0x1b0" (pointer_expression "*(long *)((long)data + 0xda0)" * (cast_expression "(long *)((long)data + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar20 != 0) goto LAB_0014dce7;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014dce7;" goto statement_identifier ;)) (expression_statement "bVar7 = 10 < local_228;" (assignment_expression "bVar7 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (goto_statement "goto LAB_0014dd14;" goto statement_identifier ;)) (case_statement "case 0xffc6:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21;\n    break;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x21" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff3" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc7:\n    local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22;\n    break;" case number_literal : (expression_statement "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22;" (assignment_expression "local_228 = (-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22" identifier = (binary_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3) + 0x22" (parenthesized_expression "(-(uint)((event->state & 1) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((event->state & 1) == 0) & 0xfffffff3" (unary_expression "-(uint)((event->state & 1) == 0)" - (call_expression "(uint)((event->state & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((event->state & 1) == 0)" ( (binary_expression "(event->state & 1) == 0" (parenthesized_expression "(event->state & 1)" ( (binary_expression "event->state & 1" (field_expression "event->state" identifier -> field_identifier) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc8:\n    local_228 = 0x17;\n    break;" case number_literal : (expression_statement "local_228 = 0x17;" (assignment_expression "local_228 = 0x17" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc9:\n    local_228 = 0x18;\n    break;" case number_literal : (expression_statement "local_228 = 0x18;" (assignment_expression "local_228 = 0x18" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffca:\n    local_228 = 0x19;\n    break;" case number_literal : (expression_statement "local_228 = 0x19;" (assignment_expression "local_228 = 0x19" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcb:\n    local_228 = 0x1a;\n    break;" case number_literal : (expression_statement "local_228 = 0x1a;" (assignment_expression "local_228 = 0x1a" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcc:\n    local_228 = 0x1c;\n    break;" case number_literal : (expression_statement "local_228 = 0x1c;" (assignment_expression "local_228 = 0x1c" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcd:\n    local_228 = 0x1d;\n    break;" case number_literal : (expression_statement "local_228 = 0x1d;" (assignment_expression "local_228 = 0x1d" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffce:\n    local_228 = 0x1f;\n    break;" case number_literal : (expression_statement "local_228 = 0x1f;" (assignment_expression "local_228 = 0x1f" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcf:\n    local_228 = 0x20;\n    break;" case number_literal : (expression_statement "local_228 = 0x20;" (assignment_expression "local_228 = 0x20" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffd0:\n    local_228 = 0x21;\n    break;" case number_literal : (expression_statement "local_228 = 0x21;" (assignment_expression "local_228 = 0x21" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffd1:\n    local_228 = 0x22;\n    break;" case number_literal : (expression_statement "local_228 = 0x22;" (assignment_expression "local_228 = 0x22" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    uVar19 = event->state;\n    uVar21 = uVar19 & 4;\n    if (uVar21 == 0) {\n      if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;" default : (expression_statement "uVar19 = event->state;" (assignment_expression "uVar19 = event->state" identifier = (field_expression "event->state" identifier -> field_identifier)) ;) (expression_statement "uVar21 = uVar19 & 4;" (assignment_expression "uVar21 = uVar19 & 4" identifier = (binary_expression "uVar19 & 4" identifier & number_literal)) ;) (if_statement "if (uVar21 == 0) {\n      if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n      if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }" { (if_statement "if (uVar11 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar11 == 0xff95)" ( (binary_expression "uVar11 == 0xff95" identifier == number_literal) )) (compound_statement "{\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 1;" (assignment_expression "local_228 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0xff96) {\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar11 < 0xff96)" ( (binary_expression "uVar11 < 0xff96" identifier < number_literal) )) (compound_statement "{\n        if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }" { (if_statement "if (uVar11 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" if (parenthesized_expression "(uVar11 == 0xff56)" ( (binary_expression "uVar11 == 0xff56" identifier == number_literal) )) (compound_statement "{\n          local_228 = 6;\n        }" { (expression_statement "local_228 = 6;" (assignment_expression "local_228 = 6" identifier = number_literal) ;) }) (else_clause "else if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" else (if_statement "if (uVar11 < 0xff57) {\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" if (parenthesized_expression "(uVar11 < 0xff57)" ( (binary_expression "uVar11 < 0xff57" identifier < number_literal) )) (compound_statement "{\n          local_228 = 1;\n          if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }" { (expression_statement "local_228 = 1;" (assignment_expression "local_228 = 1" identifier = number_literal) ;) (if_statement "if (uVar11 != 0xff50) {\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }" if (parenthesized_expression "(uVar11 != 0xff50)" ( (binary_expression "uVar11 != 0xff50" identifier != number_literal) )) (compound_statement "{\n            if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }" { (if_statement "if (uVar11 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" if (parenthesized_expression "(uVar11 != 0xff55)" ( (binary_expression "uVar11 != 0xff55" identifier != number_literal) )) (compound_statement "{\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 5;" (assignment_expression "local_228 = 5" identifier = number_literal) ;) })) }) (else_clause "else {\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" else (compound_statement "{\n          local_228 = 4;\n          if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" { (expression_statement "local_228 = 4;" (assignment_expression "local_228 = 4" identifier = number_literal) ;) (if_statement "if (uVar11 != 0xff57) {\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }" if (parenthesized_expression "(uVar11 != 0xff57)" ( (binary_expression "uVar11 != 0xff57" identifier != number_literal) )) (compound_statement "{\n            if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }" { (if_statement "if (uVar11 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" if (parenthesized_expression "(uVar11 != 0xff63)" ( (binary_expression "uVar11 != 0xff63" identifier != number_literal) )) (compound_statement "{\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 2;" (assignment_expression "local_228 = 2" identifier = number_literal) ;) })) }))))) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar11 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar11 == 0xff9c)" ( (binary_expression "uVar11 == 0xff9c" identifier == number_literal) )) (compound_statement "{\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 4;" (assignment_expression "local_228 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0xff9d) {\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar11 < 0xff9d)" ( (binary_expression "uVar11 < 0xff9d" identifier < number_literal) )) (compound_statement "{\n        local_228 = 5;\n        if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 5;" (assignment_expression "local_228 = 5" identifier = number_literal) ;) (if_statement "if (uVar11 != 0xff9a) {\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }" if (parenthesized_expression "(uVar11 != 0xff9a)" ( (binary_expression "uVar11 != 0xff9a" identifier != number_literal) )) (compound_statement "{\n          if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }" { (if_statement "if (uVar11 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }" if (parenthesized_expression "(uVar11 != 0xff9b)" ( (binary_expression "uVar11 != 0xff9b" identifier != number_literal) )) (compound_statement "{\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 6;" (assignment_expression "local_228 = 6" identifier = number_literal) ;) })) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (expression_statement "local_228 = 3;" (assignment_expression "local_228 = 3" identifier = number_literal) ;) (if_statement "if (((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))\n      goto LAB_0014dbfe;" if (parenthesized_expression "(((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e))" ( (binary_expression "((uVar11 == 0xff9f) || (uVar11 == 0xffff)) || (local_228 = 2, uVar11 == 0xff9e)" (parenthesized_expression "((uVar11 == 0xff9f) || (uVar11 == 0xffff))" ( (binary_expression "(uVar11 == 0xff9f) || (uVar11 == 0xffff)" (parenthesized_expression "(uVar11 == 0xff9f)" ( (binary_expression "uVar11 == 0xff9f" identifier == number_literal) )) || (parenthesized_expression "(uVar11 == 0xffff)" ( (binary_expression "uVar11 == 0xffff" identifier == number_literal) ))) )) || (parenthesized_expression "(local_228 = 2, uVar11 == 0xff9e)" ( (comma_expression "local_228 = 2, uVar11 == 0xff9e" (assignment_expression "local_228 = 2" identifier = number_literal) , (binary_expression "uVar11 == 0xff9e" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;)) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;)) })) (expression_statement "uVar19 = event->state;" (assignment_expression "uVar19 = event->state" identifier = (field_expression "event->state" identifier -> field_identifier)) ;) (expression_statement "uVar21 = uVar19 & 4;" (assignment_expression "uVar21 = uVar19 & 4" identifier = (binary_expression "uVar19 & 4" identifier & number_literal)) ;) (labeled_statement "LAB_0014e24b:\n  iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);" statement_identifier : (expression_statement "iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);" (assignment_expression "iVar20 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" identifier = (pointer_expression "*(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)((long)data + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)data + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)((long)data + 0xda0) + 0x1b0" (pointer_expression "*(long *)((long)data + 0xda0)" * (cast_expression "(long *)((long)data + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))))) ;)) (if_statement "if (iVar20 == 0) {\n    bVar7 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar9 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;\n      builtin_strncpy(codes,"HL.FIG",7);\n      if (local_228 == 3) {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);\n      iVar9 = 8;\n      switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }\n      if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }\n      if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);\n      iVar22 = 4;\n    }\nLAB_0014d90a:\n    wVar10 = iVar22 - iVar12;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar7 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar9 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar22 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)) {\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)) {\n      puVar16 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }\n      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);\n      iVar22 = iVar22 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }\nLAB_0014e155:\n    wVar10 = iVar22 - iVar12;\n    if (wVar10 < L'\x01') goto LAB_0014cf81;\n  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar7 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar9 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;\n      builtin_strncpy(codes,"HL.FIG",7);\n      if (local_228 == 3) {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);\n      iVar9 = 8;\n      switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }\n      if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }\n      if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);\n      iVar22 = 4;\n    }\nLAB_0014d90a:\n    wVar10 = iVar22 - iVar12;\n    local_228 = 0;\n  }" { (expression_statement "bVar7 = 10 < local_228;" (assignment_expression "bVar7 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (if_statement "if ((0x17 < local_228 - 0xbU) || (iVar9 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;\n      builtin_strncpy(codes,"HL.FIG",7);\n      if (local_228 == 3) {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);\n      iVar9 = 8;\n      switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }\n      if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }\n      if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);\n      iVar22 = 4;\n    }" if (parenthesized_expression "((0x17 < local_228 - 0xbU) || (iVar9 != 5))" ( (binary_expression "(0x17 < local_228 - 0xbU) || (iVar9 != 5)" (parenthesized_expression "(0x17 < local_228 - 0xbU)" ( (binary_expression "0x17 < local_228 - 0xbU" number_literal < (binary_expression "local_228 - 0xbU" identifier - number_literal)) )) || (parenthesized_expression "(iVar9 != 5)" ( (binary_expression "iVar9 != 5" identifier != number_literal) ))) )) (compound_statement "{\n      if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;\n      builtin_strncpy(codes,"HL.FIG",7);\n      if (local_228 == 3) {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }\n    }" { (if_statement "if ((5 < local_228 - 1U) || (iVar9 != 5)) goto LAB_0014dd14;" if (parenthesized_expression "((5 < local_228 - 1U) || (iVar9 != 5))" ( (binary_expression "(5 < local_228 - 1U) || (iVar9 != 5)" (parenthesized_expression "(5 < local_228 - 1U)" ( (binary_expression "5 < local_228 - 1U" number_literal < (binary_expression "local_228 - 1U" identifier - number_literal)) )) || (parenthesized_expression "(iVar9 != 5)" ( (binary_expression "iVar9 != 5" identifier != number_literal) ))) )) (goto_statement "goto LAB_0014dd14;" goto statement_identifier ;)) (expression_statement "builtin_strncpy(codes,"HL.FIG",7);" (call_expression "builtin_strncpy(codes,"HL.FIG",7)" identifier (argument_list "(codes,"HL.FIG",7)" ( identifier , (string_literal ""HL.FIG"" " string_content ") , number_literal ))) ;) (if_statement "if (local_228 == 3) {\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }" if (parenthesized_expression "(local_228 == 3)" ( (binary_expression "local_228 == 3" identifier == number_literal) )) (compound_statement "{\n        output[1] = '\x7f';\n        iVar22 = 2;\n      }" { (expression_statement "output[1] = '\x7f';" (assignment_expression "output[1] = '\x7f'" (subscript_expression "output[1]" identifier [ number_literal ]) = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }" else (compound_statement "{\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);\n        iVar22 = 4;\n      }" { (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1]);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1])" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f38e,(int)codes[local_228 + -1])" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f38e" & identifier) , (cast_expression "(int)codes[local_228 + -1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "codes[local_228 + -1]" identifier [ (binary_expression "local_228 + -1" identifier + number_literal) ])) ))) ;) (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);\n      iVar9 = 8;\n      switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }\n      if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }\n      if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);\n      iVar22 = 4;\n    }" else (compound_statement "{\nLAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);\n      iVar9 = 8;\n      switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }\n      if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }\n      if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);\n      iVar22 = 4;\n    }" { (labeled_statement "LAB_0014ddd3:\n      builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);" statement_identifier : (expression_statement "builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);" (call_expression "builtin_strncpy(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31)" identifier (argument_list "(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31)" ( identifier , (string_literal ""MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{"" " string_content escape_sequence string_content ") , number_literal ))) ;)) (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (switch_statement "switch(uVar11) {\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }" switch (parenthesized_expression "(uVar11)" ( identifier )) (compound_statement "{\n      case 0xffbf:\n        iVar9 = 1;\n        break;\n      case 0xffc0:\n        iVar9 = 2;\n        break;\n      case 0xffc1:\n        iVar9 = 3;\n        break;\n      case 0xffc2:\n        iVar9 = 4;\n        break;\n      case 0xffc3:\n        iVar9 = 5;\n        break;\n      case 0xffc4:\n        iVar9 = 6;\n        break;\n      case 0xffc5:\n        iVar9 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar9 = 9;\n        break;\n      case 0xffc8:\n        iVar9 = 10;\n        break;\n      case 0xffc9:\n        iVar9 = 0xb;\n        break;\n      default:\n        iVar9 = 0;\n      }" { (case_statement "case 0xffbf:\n        iVar9 = 1;\n        break;" case number_literal : (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc0:\n        iVar9 = 2;\n        break;" case number_literal : (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc1:\n        iVar9 = 3;\n        break;" case number_literal : (expression_statement "iVar9 = 3;" (assignment_expression "iVar9 = 3" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc2:\n        iVar9 = 4;\n        break;" case number_literal : (expression_statement "iVar9 = 4;" (assignment_expression "iVar9 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc3:\n        iVar9 = 5;\n        break;" case number_literal : (expression_statement "iVar9 = 5;" (assignment_expression "iVar9 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc4:\n        iVar9 = 6;\n        break;" case number_literal : (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc5:\n        iVar9 = 7;\n        break;" case number_literal : (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc6:\n        break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0xffc7:\n        iVar9 = 9;\n        break;" case number_literal : (expression_statement "iVar9 = 9;" (assignment_expression "iVar9 = 9" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc8:\n        iVar9 = 10;\n        break;" case number_literal : (expression_statement "iVar9 = 10;" (assignment_expression "iVar9 = 10" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc9:\n        iVar9 = 0xb;\n        break;" case number_literal : (expression_statement "iVar9 = 0xb;" (assignment_expression "iVar9 = 0xb" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n        iVar9 = 0;" default : (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;)) })) (if_statement "if ((uVar19 & 1) != 0) {\n        iVar9 = iVar9 + 0xc;\n      }" if (parenthesized_expression "((uVar19 & 1) != 0)" ( (binary_expression "(uVar19 & 1) != 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar9 = iVar9 + 0xc;\n      }" { (expression_statement "iVar9 = iVar9 + 0xc;" (assignment_expression "iVar9 = iVar9 + 0xc" identifier = (binary_expression "iVar9 + 0xc" identifier + number_literal)) ;) })) (if_statement "if (uVar21 != 0) {\n        iVar9 = iVar9 + 0x18;\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar9 = iVar9 + 0x18;\n      }" { (expression_statement "iVar9 = iVar9 + 0x18;" (assignment_expression "iVar9 = iVar9 + 0x18" identifier = (binary_expression "iVar9 + 0x18" identifier + number_literal)) ;) })) (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9]);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9])" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f38e,(int)codes[iVar9])" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f38e" & identifier) , (cast_expression "(int)codes[iVar9]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "codes[iVar9]" identifier [ identifier ])) ))) ;) (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) }))) (labeled_statement "LAB_0014d90a:\n    wVar10 = iVar22 - iVar12;" statement_identifier : (expression_statement "wVar10 = iVar22 - iVar12;" (assignment_expression "wVar10 = iVar22 - iVar12" identifier = (binary_expression "iVar22 - iVar12" identifier - identifier)) ;)) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar7 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar9 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar22 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)) {\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)) {\n      puVar16 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }\n      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);\n      iVar22 = iVar22 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }\nLAB_0014e155:\n    wVar10 = iVar22 - iVar12;\n    if (wVar10 < L'\x01') goto LAB_0014cf81;\n  }" else (compound_statement "{\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar7 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar9 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar22 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)) {\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)) {\n      puVar16 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }\n      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);\n      iVar22 = iVar22 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }\nLAB_0014e155:\n    wVar10 = iVar22 - iVar12;\n    if (wVar10 < L'\x01') goto LAB_0014cf81;\n  }" { (labeled_statement "LAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }" statement_identifier : (if_statement "if (local_228 - 1U < 6) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(local_228 - 1U < 6)" ( (binary_expression "local_228 - 1U < 6" (binary_expression "local_228 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar22 = 3;\n      goto LAB_0014d90a;\n    }" { (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228])" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228])" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (cast_expression "(int)" HLMEIG"[local_228]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "" HLMEIG"[local_228]" (string_literal "" HLMEIG"" " string_content ") [ identifier ])) ))) ;) (expression_statement "iVar22 = 3;" (assignment_expression "iVar22 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (expression_statement "bVar7 = 10 < local_228;" (assignment_expression "bVar7 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (if_statement "if ((local_228 - 0xbU < 0x18) && (iVar9 == 5)) goto LAB_0014ddd3;" if (parenthesized_expression "((local_228 - 0xbU < 0x18) && (iVar9 == 5))" ( (binary_expression "(local_228 - 0xbU < 0x18) && (iVar9 == 5)" (parenthesized_expression "(local_228 - 0xbU < 0x18)" ( (binary_expression "local_228 - 0xbU < 0x18" (binary_expression "local_228 - 0xbU" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(iVar9 == 5)" ( (binary_expression "iVar9 == 5" identifier == number_literal) ))) )) (goto_statement "goto LAB_0014ddd3;" goto statement_identifier ;)) (labeled_statement "LAB_0014dd14:\n    if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }" statement_identifier : (if_statement "if (((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe))" ( (binary_expression "((iVar9 == 4) || (iVar20 != 0)) && (local_228 - 0xbU < 0xe)" (parenthesized_expression "((iVar9 == 4) || (iVar20 != 0))" ( (binary_expression "(iVar9 == 4) || (iVar20 != 0)" (parenthesized_expression "(iVar9 == 4)" ( (binary_expression "iVar9 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_228 - 0xbU < 0xe)" ( (binary_expression "local_228 - 0xbU < 0xe" (binary_expression "local_228 - 0xbU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n      iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }" { (expression_statement "iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);" (assignment_expression "iVar9 = (uint)(0xf < local_228) + (uint)(0x15 < local_228)" identifier = (binary_expression "(uint)(0xf < local_228) + (uint)(0x15 < local_228)" (call_expression "(uint)(0xf < local_228)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xf < local_228)" ( (binary_expression "0xf < local_228" number_literal < identifier) ))) + (call_expression "(uint)(0x15 < local_228)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x15 < local_228)" ( (binary_expression "0x15 < local_228" number_literal < identifier) ))))) ;) (if_statement "if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);\n        iVar22 = 4;\n      }" { (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9)" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar9)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , (binary_expression "(local_228 + 0x45) - iVar9" (parenthesized_expression "(local_228 + 0x45)" ( (binary_expression "local_228 + 0x45" identifier + number_literal) )) - identifier) ))) ;) (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }" else (compound_statement "{\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);\n        iVar22 = 3;\n      }" { (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9)" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar9)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (binary_expression "(local_228 + 0x45) - iVar9" (parenthesized_expression "(local_228 + 0x45)" ( (binary_expression "local_228 + 0x45" identifier + number_literal) )) - identifier) ))) ;) (expression_statement "iVar22 = 3;" (assignment_expression "iVar22 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (if_statement "if (((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)) {\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar22 = 5;\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10))" ( (binary_expression "((bool)(iVar9 == 1 & bVar7)) && (local_228 < 0x10)" (parenthesized_expression "((bool)(iVar9 == 1 & bVar7))" ( (cast_expression "(bool)(iVar9 == 1 & bVar7)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(iVar9 == 1 & bVar7)" ( (binary_expression "iVar9 == 1 & bVar7" (binary_expression "iVar9 == 1" identifier == number_literal) & identifier) ))) )) && (parenthesized_expression "(local_228 < 0x10)" ( (binary_expression "local_228 < 0x10" identifier < number_literal) ))) )) (compound_statement "{\n      __sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar22 = 5;\n      goto LAB_0014d90a;\n    }" { (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36)" identifier (argument_list "(output + 1,1,0xff,&DAT_001827e1,local_228 + 0x36)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_001827e1" & identifier) , (binary_expression "local_228 + 0x36" identifier + number_literal) ))) ;) (expression_statement "iVar22 = 5;" (assignment_expression "iVar22 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (if_statement "if (((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)) {\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf))" ( (binary_expression "((bool)(iVar9 == 2 & bVar7)) && (local_228 < 0xf)" (parenthesized_expression "((bool)(iVar9 == 2 & bVar7))" ( (cast_expression "(bool)(iVar9 == 2 & bVar7)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(iVar9 == 2 & bVar7)" ( (binary_expression "iVar9 == 2 & bVar7" (binary_expression "iVar9 == 2" identifier == number_literal) & identifier) ))) )) && (parenthesized_expression "(local_228 < 0xf)" ( (binary_expression "local_228 < 0xf" identifier < number_literal) ))) )) (compound_statement "{\n      if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }\n      goto LAB_0014d90a;\n    }" { (if_statement "if (iVar20 == 0) {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }\n      else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar22 = 4;\n      }" { (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45)" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f389,local_228 + 0x45)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , (binary_expression "local_228 + 0x45" identifier + number_literal) ))) ;) (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }" else (compound_statement "{\n        __sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar22 = 3;\n      }" { (expression_statement "__sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45);" (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45)" identifier (argument_list "(output + 1,1,0xff,&DAT_0017f385,local_228 + 0x45)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (binary_expression "local_228 + 0x45" identifier + number_literal) ))) ;) (expression_statement "iVar22 = 3;" (assignment_expression "iVar22 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (if_statement "if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)) {\n      puVar16 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }\n      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);\n      iVar22 = iVar22 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }" if (parenthesized_expression "(((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0))" ( (binary_expression "((local_228 == 1) || (local_228 == 4)) &&\n       (iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)" (parenthesized_expression "((local_228 == 1) || (local_228 == 4))" ( (binary_expression "(local_228 == 1) || (local_228 == 4)" (parenthesized_expression "(local_228 == 1)" ( (binary_expression "local_228 == 1" identifier == number_literal) )) || (parenthesized_expression "(local_228 == 4)" ( (binary_expression "local_228 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0)" ( (comma_expression "iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40), iVar9 != 0" (assignment_expression "iVar9 = conf_get_int(*(Conf **)((long)data + 0x22d0),0x40)" identifier = (call_expression "conf_get_int(*(Conf **)((long)data + 0x22d0),0x40)" identifier (argument_list "(*(Conf **)((long)data + 0x22d0),0x40)" ( (pointer_expression "*(Conf **)((long)data + 0x22d0)" * (cast_expression "(Conf **)((long)data + 0x22d0)" ( (type_descriptor "Conf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0x22d0)" ( (binary_expression "(long)data + 0x22d0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , number_literal )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puVar16 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }\n      iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);\n      iVar22 = iVar22 + 1;\n      local_228 = 0;\n    }" { (expression_statement "puVar16 = &DAT_001827d9;" (assignment_expression "puVar16 = &DAT_001827d9" identifier = (pointer_expression "&DAT_001827d9" & identifier)) ;) (if_statement "if (local_228 != 1) {\n        puVar16 = &DAT_001827dd;\n      }" if (parenthesized_expression "(local_228 != 1)" ( (binary_expression "local_228 != 1" identifier != number_literal) )) (compound_statement "{\n        puVar16 = &DAT_001827dd;\n      }" { (expression_statement "puVar16 = &DAT_001827dd;" (assignment_expression "puVar16 = &DAT_001827dd" identifier = (pointer_expression "&DAT_001827dd" & identifier)) ;) })) (expression_statement "iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16);" (assignment_expression "iVar22 = __sprintf_chk(output + 1,1,0xff,puVar16)" identifier = (call_expression "__sprintf_chk(output + 1,1,0xff,puVar16)" identifier (argument_list "(output + 1,1,0xff,puVar16)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , identifier )))) ;) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }" else (compound_statement "{\n      if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }\n      wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);\n      iVar22 = wVar10 + L'\x01';\n    }" { (if_statement "if (local_228 != 0) {\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }" if (parenthesized_expression "(local_228 != 0)" ( (binary_expression "local_228 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);\n        iVar22 = iVar22 + 1;\n        goto LAB_0014d90a;\n      }" { (expression_statement "iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228);" (assignment_expression "iVar22 = __sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228)" identifier = (call_expression "__sprintf_chk(output + 1,1,0xff,&DAT_001827e7,local_228)" identifier (argument_list "(output + 1,1,0xff,&DAT_001827e7,local_228)" ( (binary_expression "output + 1" identifier + number_literal) , number_literal , number_literal , (pointer_expression "&DAT_001827e7" & identifier) , identifier )))) ;) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (switch_statement "switch(event->keyval) {\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }" switch (parenthesized_expression "(event->keyval)" ( (field_expression "event->keyval" identifier -> field_identifier) )) (compound_statement "{\n      case 0xff51:\n      case 0xff96:\n        wVar10 = L'D';\n        break;\n      case 0xff52:\n      case 0xff97:\n        wVar10 = L'A';\n        break;\n      case 0xff53:\n      case 0xff98:\n        wVar10 = L'C';\n        break;\n      case 0xff54:\n      case 0xff99:\n        wVar10 = L'B';\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        wVar10 = L'G';\n      }" { (case_statement "case 0xff51:" case number_literal :) (case_statement "case 0xff96:\n        wVar10 = L'D';\n        break;" case number_literal : (expression_statement "wVar10 = L'D';" (assignment_expression "wVar10 = L'D'" identifier = (char_literal "L'D'" L' character ')) ;) (break_statement "break;" break ;)) (case_statement "case 0xff52:" case number_literal :) (case_statement "case 0xff97:\n        wVar10 = L'A';\n        break;" case number_literal : (expression_statement "wVar10 = L'A';" (assignment_expression "wVar10 = L'A'" identifier = (char_literal "L'A'" L' character ')) ;) (break_statement "break;" break ;)) (case_statement "case 0xff53:" case number_literal :) (case_statement "case 0xff98:\n        wVar10 = L'C';\n        break;" case number_literal : (expression_statement "wVar10 = L'C';" (assignment_expression "wVar10 = L'C'" identifier = (char_literal "L'C'" L' character ')) ;) (break_statement "break;" break ;)) (case_statement "case 0xff54:" case number_literal :) (case_statement "case 0xff99:\n        wVar10 = L'B';\n        break;" case number_literal : (expression_statement "wVar10 = L'B';" (assignment_expression "wVar10 = L'B'" identifier = (char_literal "L'B'" L' character ')) ;) (break_statement "break;" break ;)) (case_statement "default:\n        local_228 = local_224;\n        goto LAB_0014e155;" default : (expression_statement "local_228 = local_224;" (assignment_expression "local_228 = local_224" identifier = identifier) ;) (goto_statement "goto LAB_0014e155;" goto statement_identifier ;)) (case_statement "case 0xff58:" case number_literal :) (case_statement "case 0xff9d:\n        wVar10 = L'G';" case number_literal : (expression_statement "wVar10 = L'G';" (assignment_expression "wVar10 = L'G'" identifier = (char_literal "L'G'" L' character ')) ;)) })) (expression_statement "wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4);" (assignment_expression "wVar10 = format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4)" identifier = (call_expression "format_arrow_key(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4)" identifier (argument_list "(output + 1,*(Terminal **)((long)data + 0xda0),wVar10,\n                                event->state & 4)" ( (binary_expression "output + 1" identifier + number_literal) , (pointer_expression "*(Terminal **)((long)data + 0xda0)" * (cast_expression "(Terminal **)((long)data + 0xda0)" ( (type_descriptor "Terminal **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier , (binary_expression "event->state & 4" (field_expression "event->state" identifier -> field_identifier) & number_literal) )))) ;) (expression_statement "iVar22 = wVar10 + L'\x01';" (assignment_expression "iVar22 = wVar10 + L'\x01'" identifier = (binary_expression "wVar10 + L'\x01'" identifier + (char_literal "L'\x01'" L' escape_sequence '))) ;) }))) (labeled_statement "LAB_0014e155:\n    wVar10 = iVar22 - iVar12;" statement_identifier : (expression_statement "wVar10 = iVar22 - iVar12;" (assignment_expression "wVar10 = iVar22 - iVar12" identifier = (binary_expression "iVar22 - iVar12" identifier - identifier)) ;)) (if_statement "if (wVar10 < L'\x01') goto LAB_0014cf81;" if (parenthesized_expression "(wVar10 < L'\x01')" ( (binary_expression "wVar10 < L'\x01'" identifier < (char_literal "L'\x01'" L' escape_sequence ')) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0014e163:\n  if (bVar8) {\n    output[iVar22] = '\0';\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');\n    }\n  }\n  else if (*(int *)((long)data + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }" statement_identifier : (if_statement "if (bVar8) {\n    output[iVar22] = '\0';\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');\n    }\n  }\n  else if (*(int *)((long)data + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\n    output[iVar22] = '\0';\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');\n    }\n  }" { (expression_statement "output[iVar22] = '\0';" (assignment_expression "output[iVar22] = '\0'" (subscript_expression "output[iVar22]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');\n    }" if (parenthesized_expression "(*(void **)((long)data + 0xd88) != (void *)0x0)" ( (binary_expression "*(void **)((long)data + 0xd88) != (void *)0x0" (pointer_expression "*(void **)((long)data + 0xd88)" * (cast_expression "(void **)((long)data + 0xd88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xd88)" ( (binary_expression "(long)data + 0xd88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');\n    }" { (expression_statement "ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01');" (call_expression "ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01')" identifier (argument_list "(*(void **)((long)data + 0xd88),output + iVar12,L'\xfffffffe',L'\x01')" ( (pointer_expression "*(void **)((long)data + 0xd88)" * (cast_expression "(void **)((long)data + 0xd88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xd88)" ( (binary_expression "(long)data + 0xd88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (binary_expression "output + iVar12" identifier + identifier) , (char_literal "L'\xfffffffe'" L' escape_sequence character character character character ') , (char_literal "L'\x01'" L' escape_sequence ') ))) ;) })) }) (else_clause "else if (*(int *)((long)data + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }" else (if_statement "if (*(int *)((long)data + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }" if (parenthesized_expression "(*(int *)((long)data + 0xd10) == 0)" ( (binary_expression "*(int *)((long)data + 0xd10) == 0" (pointer_expression "*(int *)((long)data + 0xd10)" * (cast_expression "(int *)((long)data + 0xd10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0xd10)" ( (binary_expression "(long)data + 0xd10" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }\n  }" { (if_statement "if (local_228 == 0) {\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }\n    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }" if (parenthesized_expression "(local_228 == 0)" ( (binary_expression "local_228 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }\n    }" { (labeled_statement "LAB_0014e201:\n      if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }" statement_identifier : (if_statement "if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }" if (parenthesized_expression "(*(void **)((long)data + 0xd88) != (void *)0x0)" ( (binary_expression "*(void **)((long)data + 0xd88) != (void *)0x0" (pointer_expression "*(void **)((long)data + 0xd88)" * (cast_expression "(void **)((long)data + 0xd88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xd88)" ( (binary_expression "(long)data + 0xd88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');\n      }" { (expression_statement "lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01');" (call_expression "lpage_send(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01')" identifier (argument_list "(*(void **)((long)data + 0xd88),local_220,output + iVar12,wVar10,L'\x01')" ( (pointer_expression "*(void **)((long)data + 0xd88)" * (cast_expression "(void **)((long)data + 0xd88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xd88)" ( (binary_expression "(long)data + 0xd88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier , (binary_expression "output + iVar12" identifier + identifier) , identifier , (char_literal "L'\x01'" L' escape_sequence ') ))) ;) }))) }) (else_clause "else if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }" else (if_statement "if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }" if (parenthesized_expression "(*(void **)((long)data + 0xd88) != (void *)0x0)" ( (binary_expression "*(void **)((long)data + 0xd88) != (void *)0x0" (pointer_expression "*(void **)((long)data + 0xd88)" * (cast_expression "(void **)((long)data + 0xd88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xd88)" ( (binary_expression "(long)data + 0xd88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');\n    }" { (expression_statement "luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01');" (call_expression "luni_send(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01')" identifier (argument_list "(*(void **)((long)data + 0xd88),ucsoutput + iVar12,wVar10,L'\x01')" ( (pointer_expression "*(void **)((long)data + 0xd88)" * (cast_expression "(void **)((long)data + 0xd88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xd88)" ( (binary_expression "(long)data + 0xd88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (binary_expression "ucsoutput + iVar12" identifier + identifier) , identifier , (char_literal "L'\x01'" L' escape_sequence ') ))) ;) })))) }) (else_clause "else {\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }" else (compound_statement "{\nLAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }\n  }" { (labeled_statement "LAB_0014d003:\n    if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }" statement_identifier : (if_statement "if (*(void **)((long)data + 0xd88) != (void *)0x0) {\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }" if (parenthesized_expression "(*(void **)((long)data + 0xd88) != (void *)0x0)" ( (binary_expression "*(void **)((long)data + 0xd88) != (void *)0x0" (pointer_expression "*(void **)((long)data + 0xd88)" * (cast_expression "(void **)((long)data + 0xd88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xd88)" ( (binary_expression "(long)data + 0xd88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');\n    }" { (expression_statement "ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01');" (call_expression "ldisc_send(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01')" identifier (argument_list "(*(void **)((long)data + 0xd88),output + iVar12,wVar10,L'\x01')" ( (pointer_expression "*(void **)((long)data + 0xd88)" * (cast_expression "(void **)((long)data + 0xd88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xd88)" ( (binary_expression "(long)data + 0xd88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , (binary_expression "output + iVar12" identifier + identifier) , identifier , (char_literal "L'\x01'" L' escape_sequence ') ))) ;) }))) })))))) (expression_statement "show_mouseptr((gui_data *)data,L'\0');" (call_expression "show_mouseptr((gui_data *)data,L'\0')" identifier (argument_list "((gui_data *)data,L'\0')" ( (cast_expression "(gui_data *)data" ( (type_descriptor "gui_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (char_literal "L'\0'" L' escape_sequence ') ))) ;) (expression_statement "term_seen_key_event(*(Terminal **)((long)data + 0xda0));" (call_expression "term_seen_key_event(*(Terminal **)((long)data + 0xda0))" identifier (argument_list "(*(Terminal **)((long)data + 0xda0))" ( (pointer_expression "*(Terminal **)((long)data + 0xda0)" * (cast_expression "(Terminal **)((long)data + 0xda0)" ( (type_descriptor "Terminal **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)data + 0xda0)" ( (binary_expression "(long)data + 0xda0" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ))) ;) (labeled_statement "LAB_0014cf81:\n  if (lVar3 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lVar3 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar3 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar3 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined8 FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)\n\n{\n  char cVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  int iVar6;\n  ulong uVar7;\n  long lVar8;\n  undefined *puVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  int local_228;\n  int local_224;\n  undefined4 local_220;\n  undefined4 local_214;\n  int *local_210;\n  int local_208 [32];\n  undefined8 local_188;\n  undefined8 local_180;\n  undefined8 local_178;\n  undefined8 local_170;\n  undefined8 local_168;\n  undefined8 local_160;\n  undefined1 local_158;\n  char local_148;\n  uint local_147 [63];\n  undefined1 local_49;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  *(int *)(param_3 + 0x22e0) = param_2[5];\n  if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;\n  if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;\n  if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;\n  if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }\n  uVar7 = 0xffffffffffffffff;\n  pcVar11 = *(char **)(param_2 + 10);\n  do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');\n  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);\n  local_210 = local_208;\n  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);\n  (&local_148)[iVar6 + 1] = '\0';\n  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }\n  uVar2 = param_2[6];\n  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }\n  iVar6 = 0;\n  if (iVar16 != 1) goto LAB_0014d45d;\n  if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  iVar14 = param_2[7];\n  if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }\n  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }\n  iVar14 = param_2[7];\n  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  local_147[0] = 0x5a5b1b;\n  local_224 = 0;\n  iVar16 = 4;\nLAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n  uVar2 = param_2[7];\n  switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar13 = param_2[6];\n  uVar15 = uVar13 & 4;\nLAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n  if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }\n  FUN_001495b0(param_3,0);\n  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));\nLAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)\n\n{\n  char cVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  int iVar6;\n  ulong uVar7;\n  long lVar8;\n  undefined *puVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  int local_228;\n  int local_224;\n  undefined4 local_220;\n  undefined4 local_214;\n  int *local_210;\n  int local_208 [32];\n  undefined8 local_188;\n  undefined8 local_180;\n  undefined8 local_178;\n  undefined8 local_170;\n  undefined8 local_168;\n  undefined8 local_160;\n  undefined1 local_158;\n  char local_148;\n  uint local_147 [63];\n  undefined1 local_49;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  *(int *)(param_3 + 0x22e0) = param_2[5];\n  if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;\n  if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;\n  if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;\n  if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }\n  uVar7 = 0xffffffffffffffff;\n  pcVar11 = *(char **)(param_2 + 10);\n  do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');\n  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);\n  local_210 = local_208;\n  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);\n  (&local_148)[iVar6 + 1] = '\0';\n  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }\n  uVar2 = param_2[6];\n  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }\n  iVar6 = 0;\n  if (iVar16 != 1) goto LAB_0014d45d;\n  if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  iVar14 = param_2[7];\n  if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }\n  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }\n  iVar14 = param_2[7];\n  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  local_147[0] = 0x5a5b1b;\n  local_224 = 0;\n  iVar16 = 4;\nLAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n  uVar2 = param_2[7];\n  switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar13 = param_2[6];\n  uVar15 = uVar13 & 4;\nLAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n  if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }\n  FUN_001495b0(param_3,0);\n  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));\nLAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)" identifier (parameter_list "(undefined8 param_1,int *param_2,long param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  int iVar6;\n  ulong uVar7;\n  long lVar8;\n  undefined *puVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  int local_228;\n  int local_224;\n  undefined4 local_220;\n  undefined4 local_214;\n  int *local_210;\n  int local_208 [32];\n  undefined8 local_188;\n  undefined8 local_180;\n  undefined8 local_178;\n  undefined8 local_170;\n  undefined8 local_168;\n  undefined8 local_160;\n  undefined1 local_158;\n  char local_148;\n  uint local_147 [63];\n  undefined1 local_49;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  *(int *)(param_3 + 0x22e0) = param_2[5];\n  if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;\n  if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;\n  if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;\n  if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }\n  uVar7 = 0xffffffffffffffff;\n  pcVar11 = *(char **)(param_2 + 10);\n  do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');\n  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);\n  local_210 = local_208;\n  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);\n  (&local_148)[iVar6 + 1] = '\0';\n  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }\n  uVar2 = param_2[6];\n  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }\n  iVar6 = 0;\n  if (iVar16 != 1) goto LAB_0014d45d;\n  if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  iVar14 = param_2[7];\n  if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }\n  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }\n  iVar14 = param_2[7];\n  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  local_147[0] = 0x5a5b1b;\n  local_224 = 0;\n  iVar16 = 4;\nLAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n  uVar2 = param_2[7];\n  switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar13 = param_2[6];\n  uVar15 = uVar13 & 4;\nLAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n  if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }\n  FUN_001495b0(param_3,0);\n  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));\nLAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int local_228;" primitive_type identifier ;) (declaration "int local_224;" primitive_type identifier ;) (declaration "undefined4 local_220;" type_identifier identifier ;) (declaration "undefined4 local_214;" type_identifier identifier ;) (declaration "int *local_210;" primitive_type (pointer_declarator "*local_210" * identifier) ;) (declaration "int local_208 [32];" primitive_type (array_declarator "local_208 [32]" identifier [ number_literal ]) ;) (declaration "undefined8 local_188;" type_identifier identifier ;) (declaration "undefined8 local_180;" type_identifier identifier ;) (declaration "undefined8 local_178;" type_identifier identifier ;) (declaration "undefined8 local_170;" type_identifier identifier ;) (declaration "undefined8 local_168;" type_identifier identifier ;) (declaration "undefined8 local_160;" type_identifier identifier ;) (declaration "undefined1 local_158;" type_identifier identifier ;) (declaration "char local_148;" primitive_type identifier ;) (declaration "uint local_147 [63];" type_identifier (array_declarator "local_147 [63]" identifier [ number_literal ]) ;) (declaration "undefined1 local_49;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_3 + 0x22e0) = param_2[5];" (assignment_expression "*(int *)(param_3 + 0x22e0) = param_2[5]" (pointer_expression "*(int *)(param_3 + 0x22e0)" * (cast_expression "(int *)(param_3 + 0x22e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22e0)" ( (binary_expression "param_3 + 0x22e0" identifier + number_literal) )))) = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (if_statement "if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }" if (parenthesized_expression "(*param_2 == 9)" ( (binary_expression "*param_2 == 9" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }" { (if_statement "if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }" if (parenthesized_expression "(((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2))" ( (binary_expression "((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)" (parenthesized_expression "((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0))" ( (binary_expression "(3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)" (parenthesized_expression "(3 < param_2[7] - 0xffe7U)" ( (binary_expression "3 < param_2[7] - 0xffe7U" number_literal < (binary_expression "param_2[7] - 0xffe7U" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal)) )) || (parenthesized_expression "(*(int *)(param_3 + 0xd68) < 0)" ( (binary_expression "*(int *)(param_3 + 0xd68) < 0" (pointer_expression "*(int *)(param_3 + 0xd68)" * (cast_expression "(int *)(param_3 + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))) < number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_3 + 0xd6c) < 2)" ( (binary_expression "*(int *)(param_3 + 0xd6c) < 2" (pointer_expression "*(int *)(param_3 + 0xd6c)" * (cast_expression "(int *)(param_3 + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd6c)" ( (binary_expression "param_3 + 0xd6c" identifier + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }" { (expression_statement "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);" (assignment_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" identifier = (call_expression "gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x68),param_2)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x68)" * (cast_expression "(undefined8 *)(param_3 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x68)" ( (binary_expression "param_3 + 0x68" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar6 != 0) goto LAB_0014cf81;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) (goto_statement "goto LAB_0014cf74;" goto statement_identifier ;) })) (expression_statement "local_148 = (char)*(int *)(param_3 + 0xd68);" (assignment_expression "local_148 = (char)*(int *)(param_3 + 0xd68)" identifier = (cast_expression "(char)*(int *)(param_3 + 0xd68)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(int *)(param_3 + 0xd68)" * (cast_expression "(int *)(param_3 + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0xd10) != 0)" ( (binary_expression "*(int *)(param_3 + 0xd10) != 0" (pointer_expression "*(int *)(param_3 + 0xd10)" * (cast_expression "(int *)(param_3 + 0xd10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd10)" ( (binary_expression "param_3 + 0xd10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014d003;" goto statement_identifier ;) })) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014e201;" goto statement_identifier ;) })) (labeled_statement "LAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;" statement_identifier : (if_statement "if (*param_2 != 8) goto LAB_0014cf81;" if (parenthesized_expression "(*param_2 != 8)" ( (binary_expression "*param_2 != 8" (pointer_expression "*param_2" * identifier) != number_literal) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;))) (if_statement "if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(param_2[7] - 0xffe7U < 4)" ( (binary_expression "param_2[7] - 0xffe7U < 4" (binary_expression "param_2[7] - 0xffe7U" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }" { (expression_statement "*(undefined4 *)(param_3 + 0xd68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_3 + 0xd68) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_3 + 0xd68)" * (cast_expression "(undefined4 *)(param_3 + 0xd68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_3 + 0xd6c) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 0xd6c) = 0" (pointer_expression "*(undefined4 *)(param_3 + 0xd6c)" * (cast_expression "(undefined4 *)(param_3 + 0xd6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd6c)" ( (binary_expression "param_3 + 0xd6c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2))" ( (binary_expression "((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)" (parenthesized_expression "((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0)" ( (binary_expression "(*(uint *)(param_3 + 0x2300) & param_2[6]) != 0" (parenthesized_expression "(*(uint *)(param_3 + 0x2300) & param_2[6])" ( (binary_expression "*(uint *)(param_3 + 0x2300) & param_2[6]" (pointer_expression "*(uint *)(param_3 + 0x2300)" * (cast_expression "(uint *)(param_3 + 0x2300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2300)" ( (binary_expression "param_3 + 0x2300" identifier + number_literal) )))) & (subscript_expression "param_2[6]" identifier [ number_literal ])) )) != number_literal) )) && (parenthesized_expression "(iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)" ( (comma_expression "iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2" (assignment_expression "iVar6 = *(int *)(param_3 + 0xd68)" identifier = (pointer_expression "*(int *)(param_3 + 0xd68)" * (cast_expression "(int *)(param_3 + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) ))))) , (binary_expression "iVar6 != -2" identifier != number_literal)) ))) )) (compound_statement "{\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }" { (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (switch_statement "switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }" switch (parenthesized_expression "(param_2[7])" ( (subscript_expression "param_2[7]" identifier [ number_literal ]) )) (compound_statement "{\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }" { (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      iVar5 = 7;\n      break;" case number_literal : (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      iVar5 = 4;\n      break;" case number_literal : (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      iVar5 = 6;\n      break;" case number_literal : (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      iVar5 = 2;\n      break;" case number_literal : (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      iVar5 = 9;\n      break;" case number_literal : (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      iVar5 = 3;\n      break;" case number_literal : (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      iVar5 = 1;\n      break;" case number_literal : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      iVar5 = 5;\n      break;" case number_literal : (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9e:" case number_literal :) (case_statement "case 0xffb0:\n      iVar5 = 0;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;" default : (expression_statement "*(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;" (assignment_expression "*(undefined4 *)(param_3 + 0xd68) = 0xfffffffe" (pointer_expression "*(undefined4 *)(param_3 + 0xd68)" * (cast_expression "(undefined4 *)(param_3 + 0xd68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0014d090;" goto statement_identifier ;)) })) (if_statement "if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }" if (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) (compound_statement "{\n      iVar5 = iVar5 + iVar6 * 10;\n    }" { (expression_statement "iVar5 = iVar5 + iVar6 * 10;" (assignment_expression "iVar5 = iVar5 + iVar6 * 10" identifier = (binary_expression "iVar5 + iVar6 * 10" identifier + (binary_expression "iVar6 * 10" identifier * number_literal))) ;) })) (expression_statement "*(int *)(param_3 + 0xd68) = iVar5;" (assignment_expression "*(int *)(param_3 + 0xd68) = iVar5" (pointer_expression "*(int *)(param_3 + 0xd68)" * (cast_expression "(int *)(param_3 + 0xd68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd68)" ( (binary_expression "param_3 + 0xd68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;" (assignment_expression "*(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1" (pointer_expression "*(int *)(param_3 + 0xd6c)" * (cast_expression "(int *)(param_3 + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd6c)" ( (binary_expression "param_3 + 0xd6c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_3 + 0xd6c) + 1" (pointer_expression "*(int *)(param_3 + 0xd6c)" * (cast_expression "(int *)(param_3 + 0xd6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd6c)" ( (binary_expression "param_3 + 0xd6c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (labeled_statement "LAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;" statement_identifier : (expression_statement "uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004" identifier = (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal)) ;)) (if_statement "if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar7 == 0x3e00000004)" ( (binary_expression "uVar7 == 0x3e00000004" identifier == number_literal) )) (compound_statement "{\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_0014cd38(param_3,1);" (call_expression "FUN_0014cd38(param_3,1)" identifier (argument_list "(param_3,1)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar7 == 0x3c00000004)" ( (binary_expression "uVar7 == 0x3c00000004" identifier == number_literal) )) (compound_statement "{\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_0014cd38(param_3,0xffffffff);" (call_expression "FUN_0014cd38(param_3,0xffffffff)" identifier (argument_list "(param_3,0xffffffff)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (expression_statement "uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;" (assignment_expression "uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001" identifier = (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar10 == 0xff5500000001)" ( (binary_expression "uVar10 == 0xff5500000001" identifier == number_literal) )) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2))" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2))" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , number_literal , (unary_expression "-(*(int *)(param_3 + 0xd58) / 2)" - (parenthesized_expression "(*(int *)(param_3 + 0xd58) / 2)" ( (binary_expression "*(int *)(param_3 + 0xd58) / 2" (pointer_expression "*(int *)(param_3 + 0xd58)" * (cast_expression "(int *)(param_3 + 0xd58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd58)" ( (binary_expression "param_3 + 0xd58" identifier + number_literal) )))) / number_literal) ))) ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar7 == 0xff5500000004)" ( (binary_expression "uVar7 == 0xff5500000004" identifier == number_literal) )) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff)" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff)" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar10 == 0xff5600000001)" ( (binary_expression "uVar10 == 0xff5600000001" identifier == number_literal) )) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2)" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2)" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , number_literal , (binary_expression "*(int *)(param_3 + 0xd58) / 2" (pointer_expression "*(int *)(param_3 + 0xd58)" * (cast_expression "(int *)(param_3 + 0xd58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd58)" ( (binary_expression "param_3 + 0xd58" identifier + number_literal) )))) / number_literal) ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar7 == 0xff5600000004)" ( (binary_expression "uVar7 == 0xff5600000004" identifier == number_literal) )) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1)" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,1)" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (if_statement "if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }" if (parenthesized_expression "(uVar10 == 0xff6300000001)" ( (binary_expression "uVar10 == 0xff6300000001" identifier == number_literal) )) (compound_statement "{\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }" { (expression_statement "FUN_0014b0b2(param_3);" (call_expression "FUN_0014b0b2(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x4e)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" if (parenthesized_expression "((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0))" ( (binary_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)" (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0)" ( (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1ac)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1ac" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)" ( (comma_expression "iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0" (assignment_expression "iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x43)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "LAB_0014d16b:\n    local_148 = '\x1b';" statement_identifier : (expression_statement "local_148 = '\x1b';" (assignment_expression "local_148 = '\x1b'" identifier = (char_literal "'\x1b'" ' escape_sequence ')) ;)) (if_statement "if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;" if (parenthesized_expression "(((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       )" ( (binary_expression "((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)" (parenthesized_expression "((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U))))" ( (binary_expression "(iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))" ( (parenthesized_expression "(8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U))" ( (binary_expression "8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)" (binary_expression "8 < param_2[7] - 0xff95U" number_literal < (binary_expression "param_2[7] - 0xff95U" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal)) && (parenthesized_expression "(8 < param_2[7] - 0xffb1U)" ( (binary_expression "8 < param_2[7] - 0xffb1U" number_literal < (binary_expression "param_2[7] - 0xffb1U" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal)) ))) )) ))) )) && (parenthesized_expression "(iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)" ( (comma_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0" (assignment_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" identifier = (call_expression "gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x68),param_2)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x68)" * (cast_expression "(undefined8 *)(param_3 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x68)" ( (binary_expression "param_3 + 0x68" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) }) (else_clause "else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" else (compound_statement "{\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" { (expression_statement "local_148 = '\x1b';" (assignment_expression "local_148 = '\x1b'" identifier = (char_literal "'\x1b'" ' escape_sequence ')) ;) (if_statement "if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" if (parenthesized_expression "(0x3a < param_2[7] - 0xff7fU)" ( (binary_expression "0x3a < param_2[7] - 0xff7fU" number_literal < (binary_expression "param_2[7] - 0xff7fU" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal)) )) (compound_statement "{\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto LAB_0014d16b;" goto statement_identifier ;) })) (if_statement "if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" if (parenthesized_expression "((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0)" ( (binary_expression "(0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0" (parenthesized_expression "(0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1)" ( (binary_expression "0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1" (binary_expression "0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f)" number_literal >> (parenthesized_expression "((ulong)(param_2[7] - 0xff7fU) & 0x3f)" ( (binary_expression "(ulong)(param_2[7] - 0xff7fU) & 0x3f" (call_expression "(ulong)(param_2[7] - 0xff7fU)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_2[7] - 0xff7fU)" ( (binary_expression "param_2[7] - 0xff7fU" (subscript_expression "param_2[7]" identifier [ number_literal ]) - number_literal) ))) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto LAB_0014d16b;" goto statement_identifier ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }))) (expression_statement "uVar7 = 0xffffffffffffffff;" (assignment_expression "uVar7 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = *(char **)(param_2 + 10);" (assignment_expression "pcVar11 = *(char **)(param_2 + 10)" identifier = (pointer_expression "*(char **)(param_2 + 10)" * (cast_expression "(char **)(param_2 + 10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) ))))) ;) (do_statement "do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  }" { (if_statement "if (uVar7 == 0) break;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = uVar7 - 1;" (assignment_expression "uVar7 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);" (assignment_expression "local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" identifier = (call_expression "FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" identifier (argument_list "(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" ( number_literal , number_literal , (pointer_expression "*(char **)(param_2 + 10)" * (cast_expression "(char **)(param_2 + 10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) , (binary_expression "~uVar7 - 1" (unary_expression "~uVar7" ~ identifier) - number_literal) , identifier , number_literal )))) ;) (expression_statement "local_210 = local_208;" (assignment_expression "local_210 = local_208" identifier = identifier) ;) (expression_statement "iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);" (assignment_expression "iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" identifier = (call_expression "FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" identifier (argument_list "(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" ( (pointer_expression "&local_210" & identifier) , (pointer_expression "&local_214" & identifier) , identifier , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "(&local_148)[iVar6 + 1] = '\0';" (assignment_expression "(&local_148)[iVar6 + 1] = '\0'" (subscript_expression "(&local_148)[iVar6 + 1]" (parenthesized_expression "(&local_148)" ( (pointer_expression "&local_148" & identifier) )) [ (binary_expression "iVar6 + 1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" if (parenthesized_expression "(((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6))" ( (binary_expression "((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)" (parenthesized_expression "((char)local_147[0] == '\0')" ( (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)" ( (comma_expression "iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6" (assignment_expression "iVar6 = FUN_001563f9(param_2[7])" identifier = (call_expression "FUN_001563f9(param_2[7])" identifier (argument_list "(param_2[7])" ( (subscript_expression "param_2[7]" identifier [ number_literal ]) )))) , (binary_expression "-1 < iVar6" number_literal < identifier)) ))) )) (compound_statement "{\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }" { (expression_statement "local_208[0] = 0x1b;" (assignment_expression "local_208[0] = 0x1b" (subscript_expression "local_208[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_224 = 1;" (assignment_expression "local_224 = 1" identifier = number_literal) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (expression_statement "local_208[1] = iVar6;" (assignment_expression "local_208[1] = iVar6" (subscript_expression "local_208[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" else (compound_statement "{\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" { (expression_statement "local_49 = 0;" (assignment_expression "local_49 = 0" identifier = number_literal) ;) (expression_statement "lVar8 = -1;" (assignment_expression "lVar8 = -1" identifier = number_literal) ;) (expression_statement "pcVar11 = &local_148;" (assignment_expression "pcVar11 = &local_148" identifier = (pointer_expression "&local_148" & identifier)) ;) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar16 = ~(uint)lVar8 - 1;" (assignment_expression "iVar16 = ~(uint)lVar8 - 1" identifier = (binary_expression "~(uint)lVar8 - 1" (unary_expression "~(uint)lVar8" ~ (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar2 = param_2[6];" (assignment_expression "uVar2 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }" if (parenthesized_expression "((*(uint *)(param_3 + 0x2300) & uVar2) == 0)" ( (binary_expression "(*(uint *)(param_3 + 0x2300) & uVar2) == 0" (parenthesized_expression "(*(uint *)(param_3 + 0x2300) & uVar2)" ( (binary_expression "*(uint *)(param_3 + 0x2300) & uVar2" (pointer_expression "*(uint *)(param_3 + 0x2300)" * (cast_expression "(uint *)(param_3 + 0x2300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2300)" ( (binary_expression "param_3 + 0x2300" identifier + number_literal) )))) & identifier) )) == number_literal) )) (compound_statement "{\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" statement_identifier : (if_statement "if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" if (parenthesized_expression "((char)local_147[0] == '\0')" ( (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }" { (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;" if (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004)" ( (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004)" ( (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0014d4ea;" goto statement_identifier ;)) (if_statement "if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;" if (parenthesized_expression "(((uVar2 & 4) != 0) && (iVar16 == 2))" ( (binary_expression "((uVar2 & 4) != 0) && (iVar16 == 2)" (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_0014d49c;" goto statement_identifier ;)) }) (else_clause "else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" else (if_statement "if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" if (parenthesized_expression "(((uVar2 & 4) != 0) && (iVar16 == 2))" ( (binary_expression "((uVar2 & 4) != 0) && (iVar16 == 2)" (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) ))) )) (compound_statement "{\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" { (if_statement "if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;" if (parenthesized_expression "(4 < (byte)((char)local_147[0] - 0x33U))" ( (binary_expression "4 < (byte)((char)local_147[0] - 0x33U)" number_literal < (call_expression "(byte)((char)local_147[0] - 0x33U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((char)local_147[0] - 0x33U)" ( (binary_expression "(char)local_147[0] - 0x33U" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) - number_literal) )))) )) (goto_statement "goto LAB_0014d4a6;" goto statement_identifier ;)) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18)" identifier (argument_list "(local_147[0]._1_3_,(char)local_147[0] + -0x18)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (binary_expression "(char)local_147[0] + -0x18" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) + number_literal) )))) ;) }))))) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (iVar16 != 1) goto LAB_0014d45d;" if (parenthesized_expression "(iVar16 != 1)" ( (binary_expression "iVar16 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0014d45d;" goto statement_identifier ;)) (if_statement "if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" if (parenthesized_expression "((char)local_147[0] == '\0')" ( (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }" { (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }" if (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004)" ( (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004)" ( (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);" statement_identifier : (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0x1c)" identifier (argument_list "(local_147[0]._1_3_,0x1c)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;)) (if_statement "if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }" { (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" statement_identifier : (labeled_statement "LAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" statement_identifier : (if_statement "if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "(((char)local_147[0] == '2') || ((char)local_147[0] == ' '))" ( (binary_expression "((char)local_147[0] == '2') || ((char)local_147[0] == ' ')" (parenthesized_expression "((char)local_147[0] == '2')" ( (binary_expression "(char)local_147[0] == '2'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'2'" ' character ')) )) || (parenthesized_expression "((char)local_147[0] == ' ')" ( (binary_expression "(char)local_147[0] == ' '" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "' '" ' character ')) ))) )) (compound_statement "{\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }" { (expression_statement "local_147[0] = (uint)local_147[0]._1_3_ << 8;" (assignment_expression "local_147[0] = (uint)local_147[0]._1_3_ << 8" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (binary_expression "(uint)local_147[0]._1_3_ << 8" (cast_expression "(uint)local_147[0]._1_3_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier)) << number_literal)) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" else (if_statement "if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "((char)local_147[0] == '8')" ( (binary_expression "(char)local_147[0] == '8'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'8'" ' character ')) )) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0x7f)" identifier (argument_list "(local_147[0]._1_3_,0x7f)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" else (if_statement "if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" if (parenthesized_expression "((char)local_147[0] == '/')" ( (binary_expression "(char)local_147[0] == '/'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0x1f)" identifier (argument_list "(local_147[0]._1_3_,0x1f)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" else (compound_statement "{\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (if_statement "if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }" if (parenthesized_expression "((byte)((char)local_147[0] - 0x40U) < 0x3f)" ( (binary_expression "(byte)((char)local_147[0] - 0x40U) < 0x3f" (call_expression "(byte)((char)local_147[0] - 0x40U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((char)local_147[0] - 0x40U)" ( (binary_expression "(char)local_147[0] - 0x40U" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) - number_literal) ))) < number_literal) )) (compound_statement "{\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (binary_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f" (call_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0])" identifier (argument_list "(local_147[0]._1_3_,(char)local_147[0])" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) ))) & number_literal)) ;) })) }))))))))) (goto_statement "goto LAB_0014d51c;" goto statement_identifier ;) })) (expression_statement "uVar7 = *(ulong *)(param_2 + 6);" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6)" identifier = (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) ))))) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" else (compound_statement "{\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);" statement_identifier : (expression_statement "uVar7 = *(ulong *)(param_2 + 6);" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6)" identifier = (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) ))))) ;)) (if_statement "if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }" if (parenthesized_expression "((uVar7 & 0xffffffff00000004) == 0xff6b00000004)" ( (binary_expression "(uVar7 & 0xffffffff00000004) == 0xff6b00000004" (parenthesized_expression "(uVar7 & 0xffffffff00000004)" ( (binary_expression "uVar7 & 0xffffffff00000004" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }" { (if_statement "if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }" if (parenthesized_expression "(*(long *)(param_3 + 0xd90) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd90) != 0" (pointer_expression "*(long *)(param_3 + 0xd90)" * (cast_expression "(long *)(param_3 + 0xd90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd90)" ( (binary_expression "param_3 + 0xd90" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }" { (expression_statement "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);" (call_expression "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1)" (parenthesized_expression "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))" ( (pointer_expression "**(code **)(*(long *)(param_3 + 0xd90) + 0x30)" * (pointer_expression "*(code **)(*(long *)(param_3 + 0xd90) + 0x30)" * (cast_expression "(code **)(*(long *)(param_3 + 0xd90) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_3 + 0xd90) + 0x30)" ( (binary_expression "*(long *)(param_3 + 0xd90) + 0x30" (pointer_expression "*(long *)(param_3 + 0xd90)" * (cast_expression "(long *)(param_3 + 0xd90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd90)" ( (binary_expression "param_3 + 0xd90" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_3 + 0xd98),1)" ( (pointer_expression "*(undefined8 *)(param_3 + 0xd98)" * (cast_expression "(undefined8 *)(param_3 + 0xd98)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd98)" ( (binary_expression "param_3 + 0xd98" identifier + number_literal) )))) , number_literal ))) ;) })) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;) })) }))) (expression_statement "iVar14 = param_2[7];" (assignment_expression "iVar14 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" if (parenthesized_expression "(iVar14 == 0xff0d)" ( (binary_expression "iVar14 == 0xff0d" identifier == number_literal) )) (compound_statement "{\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0xd)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0xd)" identifier (argument_list "(local_147[0]._1_3_,0xd)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (labeled_statement "LAB_0014d670:\n    local_220 = 0x37;" statement_identifier : (expression_statement "local_220 = 0x37;" (assignment_expression "local_220 = 0x37" identifier = number_literal) ;)) (if_statement "if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }" if (parenthesized_expression "((uVar7 & 0xffffffff00000001) == 0xff0800000000)" ( (binary_expression "(uVar7 & 0xffffffff00000001) == 0xff0800000000" (parenthesized_expression "(uVar7 & 0xffffffff00000001)" ( (binary_expression "uVar7 & 0xffffffff00000001" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }" { (expression_statement "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);" (assignment_expression "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x3f)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" identifier (argument_list "(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (binary_expression "(-(iVar16 == 0) & 0x89U) + 0x7f" (parenthesized_expression "(-(iVar16 == 0) & 0x89U)" ( (binary_expression "-(iVar16 == 0) & 0x89U" (unary_expression "-(iVar16 == 0)" - (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) ))) & number_literal) )) + number_literal) )))) ;) (expression_statement "local_220 = 0x37;" (assignment_expression "local_220 = 0x37" identifier = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) })) }) (else_clause "else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" else (compound_statement "{\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" { (if_statement "if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }" if (parenthesized_expression "((char)local_147[0] != '\0')" ( (binary_expression "(char)local_147[0] != '\0'" (cast_expression "(char)local_147[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_147[0]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar4 = false;\n      goto LAB_0014d670;\n    }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (goto_statement "goto LAB_0014d670;" goto statement_identifier ;) })) (if_statement "if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }" if (parenthesized_expression "((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4))" ( (binary_expression "(((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)" (parenthesized_expression "(((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32))" ( (binary_expression "((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)" (parenthesized_expression "((iVar14 - 0x20U & 0xffffffdf) == 0)" ( (binary_expression "(iVar14 - 0x20U & 0xffffffdf) == 0" (parenthesized_expression "(iVar14 - 0x20U & 0xffffffdf)" ( (binary_expression "iVar14 - 0x20U & 0xffffffdf" (binary_expression "iVar14 - 0x20U" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar14 == 0x32)" ( (binary_expression "iVar14 == 0x32" identifier == number_literal) ))) )) && (parenthesized_expression "((uVar2 & 5) == 4)" ( (binary_expression "(uVar2 & 5) == 4" (parenthesized_expression "(uVar2 & 5)" ( (binary_expression "uVar2 & 5" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      iVar16 = 2;\n      local_224 = 0;\n    }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) })) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (if_statement "if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;" if (parenthesized_expression "((uVar7 & 0xffffffff00000005) != 0x2000000005)" ( (binary_expression "(uVar7 & 0xffffffff00000005) != 0x2000000005" (parenthesized_expression "(uVar7 & 0xffffffff00000005)" ( (binary_expression "uVar7 & 0xffffffff00000005" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0014d670;" goto statement_identifier ;)) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0xa0)" identifier (argument_list "(local_147[0]._1_3_,0xa0)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" identifier = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }))) (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }" if (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001)" ( (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001)" ( (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }" { (expression_statement "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);" (assignment_expression "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x3f)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" identifier (argument_list "(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (binary_expression "(-(iVar16 == 0) & 0x77U) + 8" (parenthesized_expression "(-(iVar16 == 0) & 0x77U)" ( (binary_expression "-(iVar16 == 0) & 0x77U" (unary_expression "-(iVar16 == 0)" - (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) ))) & number_literal) )) + number_literal) )))) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) })) (expression_statement "iVar14 = param_2[7];" (assignment_expression "iVar14 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }" if (parenthesized_expression "((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001))" ( (binary_expression "(iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)" (parenthesized_expression "(iVar14 != 0xfe20)" ( (binary_expression "iVar14 != 0xfe20" identifier != number_literal) )) && (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)" ( (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001)" ( (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" * (cast_expression "(ulong *)(param_2 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 6)" ( (binary_expression "param_2 + 6" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }" { (if_statement "if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;" if (parenthesized_expression "((1 < iVar16) || (iVar14 != 0xff09))" ( (binary_expression "(1 < iVar16) || (iVar14 != 0xff09)" (parenthesized_expression "(1 < iVar16)" ( (binary_expression "1 < iVar16" number_literal < identifier) )) || (parenthesized_expression "(iVar14 != 0xff09)" ( (binary_expression "iVar14 != 0xff09" identifier != number_literal) ))) )) (goto_statement "goto LAB_0014d7d9;" goto statement_identifier ;)) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,9);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,9)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,9)" identifier (argument_list "(local_147[0]._1_3_,9)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (goto_statement "goto switchD_0014d8c5_caseD_ff80;" goto statement_identifier ;) })) (expression_statement "local_147[0] = 0x5a5b1b;" (assignment_expression "local_147[0] = 0x5a5b1b" (subscript_expression "local_147[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" statement_identifier : (if_statement "if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" { (switch_statement "switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }" switch (parenthesized_expression "(iVar14)" ( identifier )) (compound_statement "{\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }" { (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;" case number_literal : (expression_statement "pcVar11 = "yY\x19";" (assignment_expression "pcVar11 = "yY\x19"" identifier = (string_literal ""yY\x19"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      pcVar11 = "hH\b";\n      break;" case number_literal : (expression_statement "pcVar11 = "hH\b";" (assignment_expression "pcVar11 = "hH\b"" identifier = (string_literal ""hH\b"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      pcVar11 = "kK\v";\n      break;" case number_literal : (expression_statement "pcVar11 = "kK\v";" (assignment_expression "pcVar11 = "kK\v"" identifier = (string_literal ""kK\v"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      pcVar11 = "lL\f";\n      break;" case number_literal : (expression_statement "pcVar11 = "lL\f";" (assignment_expression "pcVar11 = "lL\f"" identifier = (string_literal ""lL\f"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;" case number_literal : (expression_statement "pcVar11 = "jJ\n";" (assignment_expression "pcVar11 = "jJ\n"" identifier = (string_literal ""jJ\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;" case number_literal : (expression_statement "pcVar11 = "uU\x15";" (assignment_expression "pcVar11 = "uU\x15"" identifier = (string_literal ""uU\x15"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;" case number_literal : (expression_statement "pcVar11 = "nN\x0e";" (assignment_expression "pcVar11 = "nN\x0e"" identifier = (string_literal ""nN\x0e"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;" case number_literal : (expression_statement "pcVar11 = "bB\x02";" (assignment_expression "pcVar11 = "bB\x02"" identifier = (string_literal ""bB\x02"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      pcVar11 = "...";\n      break;" case number_literal : (expression_statement "pcVar11 = "...";" (assignment_expression "pcVar11 = "..."" identifier = (string_literal ""..."" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "default:\n      goto switchD_0014d802_caseD_ff9e;" default : (goto_statement "goto switchD_0014d802_caseD_ff9e;" goto statement_identifier ;)) })) (if_statement "if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" if (parenthesized_expression "((param_2[6] & 4U) == 0)" ( (binary_expression "(param_2[6] & 4U) == 0" (parenthesized_expression "(param_2[6] & 4U)" ( (binary_expression "param_2[6] & 4U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }" { (if_statement "if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" if (parenthesized_expression "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,*pcVar11)" identifier (argument_list "(local_147[0]._1_3_,*pcVar11)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (pointer_expression "*pcVar11" * identifier) )))) ;) }) (else_clause "else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" else (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1])" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,pcVar11[1])" identifier (argument_list "(local_147[0]._1_3_,pcVar11[1])" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (subscript_expression "pcVar11[1]" identifier [ number_literal ]) )))) ;) }))) }) (else_clause "else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" else (compound_statement "{\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2])" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,pcVar11[2])" identifier (argument_list "(local_147[0]._1_3_,pcVar11[2])" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , (subscript_expression "pcVar11[2]" identifier [ number_literal ]) )))) ;) }))) (expression_statement "iVar5 = 2 - iVar6;" (assignment_expression "iVar5 = 2 - iVar6" identifier = (binary_expression "2 - iVar6" number_literal - identifier)) ;) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0014e163;" goto statement_identifier ;) }))) (labeled_statement "switchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" statement_identifier : (if_statement "if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" { (switch_statement "switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" switch (parenthesized_expression "(iVar14)" ( identifier )) (compound_statement "{\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" { (case_statement "case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;" case number_literal : (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }" if (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }" { (expression_statement "iVar5 = 0x50;" (assignment_expression "iVar5 = 0x50" identifier = number_literal) ;) (goto_statement "goto LAB_0014d978;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0x50;" (assignment_expression "iVar5 = 0x50" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8e1;" goto statement_identifier ;)) (case_statement "default:\n      goto switchD_0014d8c5_caseD_ff80;" default : (goto_statement "goto switchD_0014d8c5_caseD_ff80;" goto statement_identifier ;)) (case_statement "case 0xff8d:\n      iVar5 = 0x4d;\n      break;" case number_literal : (expression_statement "iVar5 = 0x4d;" (assignment_expression "iVar5 = 0x4d" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff95:" case number_literal :) (case_statement "case 0xffb7:\n      iVar5 = 0x77;\n      break;" case number_literal : (expression_statement "iVar5 = 0x77;" (assignment_expression "iVar5 = 0x77" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff96:" case number_literal :) (case_statement "case 0xffb4:\n      iVar5 = 0x74;\n      break;" case number_literal : (expression_statement "iVar5 = 0x74;" (assignment_expression "iVar5 = 0x74" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff97:" case number_literal :) (case_statement "case 0xffb8:\n      iVar5 = 0x78;\n      break;" case number_literal : (expression_statement "iVar5 = 0x78;" (assignment_expression "iVar5 = 0x78" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff98:" case number_literal :) (case_statement "case 0xffb6:\n      iVar5 = 0x76;\n      break;" case number_literal : (expression_statement "iVar5 = 0x76;" (assignment_expression "iVar5 = 0x76" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff99:" case number_literal :) (case_statement "case 0xffb2:\n      iVar5 = 0x72;\n      break;" case number_literal : (expression_statement "iVar5 = 0x72;" (assignment_expression "iVar5 = 0x72" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9a:" case number_literal :) (case_statement "case 0xffb9:\n      iVar5 = 0x79;\n      break;" case number_literal : (expression_statement "iVar5 = 0x79;" (assignment_expression "iVar5 = 0x79" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9b:" case number_literal :) (case_statement "case 0xffb3:\n      iVar5 = 0x73;\n      break;" case number_literal : (expression_statement "iVar5 = 0x73;" (assignment_expression "iVar5 = 0x73" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9c:" case number_literal :) (case_statement "case 0xffb1:\n      iVar5 = 0x71;\n      break;" case number_literal : (expression_statement "iVar5 = 0x71;" (assignment_expression "iVar5 = 0x71" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9d:" case number_literal :) (case_statement "case 0xffb5:\n      iVar5 = 0x75;\n      break;" case number_literal : (expression_statement "iVar5 = 0x75;" (assignment_expression "iVar5 = 0x75" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9e:" case number_literal :) (case_statement "case 0xffb0:\n      iVar5 = 0x70;\n      break;" case number_literal : (expression_statement "iVar5 = 0x70;" (assignment_expression "iVar5 = 0x70" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff9f:" case number_literal :) (case_statement "case 0xffae:\n      iVar5 = 0x6e;\n      break;" case number_literal : (expression_statement "iVar5 = 0x6e;" (assignment_expression "iVar5 = 0x6e" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;" case number_literal : (expression_statement "iVar5 = 0x52;" (assignment_expression "iVar5 = 0x52" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8cd;" goto statement_identifier ;)) (case_statement "case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;" case number_literal : (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x41)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }" { (expression_statement "iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);" (assignment_expression "iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0)" identifier = (binary_expression "0x6c - (uint)((param_2[6] & 1U) == 0)" number_literal - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))))) ;) }) (else_clause "else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" else (compound_statement "{\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" { (expression_statement "iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);" (assignment_expression "iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0)" identifier = (binary_expression "0x6d - (uint)((param_2[6] & 1U) == 0)" number_literal - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;" case number_literal : (expression_statement "iVar5 = 0x53;" (assignment_expression "iVar5 = 0x53" identifier = number_literal) ;) (goto_statement "goto LAB_0014d8cd;" goto statement_identifier ;)) (case_statement "case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;" case number_literal : (expression_statement "iVar5 = 0x51;" (assignment_expression "iVar5 = 0x51" identifier = number_literal) ;) (labeled_statement "LAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;" statement_identifier : (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;" if (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0014d978;" goto statement_identifier ;))) (labeled_statement "LAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);" statement_identifier : (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f385,iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , identifier ))) ;)) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" if (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" ( (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }" { (labeled_statement "LAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);" statement_identifier : (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f389,iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , identifier ))) ;)) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" else (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_001827ed,iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001827ed" & identifier) , identifier ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (labeled_statement "switchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" statement_identifier : (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x41)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) ;)) (expression_statement "uVar2 = param_2[7];" (assignment_expression "uVar2 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (switch_statement "switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }" switch (parenthesized_expression "(uVar2)" ( identifier )) (compound_statement "{\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }" { (case_statement "case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (goto_statement "goto LAB_0014da2f;" goto statement_identifier ;)) (case_statement "case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (labeled_statement "LAB_0014da2f:\n    uVar13 = param_2[6];" statement_identifier : (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;)) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" identifier = (binary_expression "uVar13 & 4" identifier & number_literal)) ;) (if_statement "if (uVar15 != 0) goto LAB_0014e24b;" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014e24b;" goto statement_identifier ;)) (labeled_statement "LAB_0014dbca:\n    uVar15 = 0;" statement_identifier : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;" statement_identifier : (if_statement "if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;" if (parenthesized_expression "((iVar5 != 3) || (6 < local_228))" ( (binary_expression "(iVar5 != 3) || (6 < local_228)" (parenthesized_expression "(iVar5 != 3)" ( (binary_expression "iVar5 != 3" identifier != number_literal) )) || (parenthesized_expression "(6 < local_228)" ( (binary_expression "6 < local_228" number_literal < identifier) ))) )) (goto_statement "goto LAB_0014e24b;" goto statement_identifier ;))) (expression_statement "local_228 = (int)(char)(&DAT_00182a60)[local_228];" (assignment_expression "local_228 = (int)(char)(&DAT_00182a60)[local_228]" identifier = (cast_expression "(int)(char)(&DAT_00182a60)[local_228]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(&DAT_00182a60)[local_228]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&DAT_00182a60)[local_228]" (parenthesized_expression "(&DAT_00182a60)" ( (pointer_expression "&DAT_00182a60" & identifier) )) [ identifier ])))) ;) (expression_statement "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" (assignment_expression "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" identifier = (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar14 != 0) goto LAB_0014dce7;" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0014dce7;" goto statement_identifier ;)) (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (goto_statement "goto LAB_0014dd14;" goto statement_identifier ;)) (case_statement "case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;" case number_literal : (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22" identifier = (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" ( (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" - (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2[6] & 1U) == 0)" ( (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" ( (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc8:\n    local_228 = 0x17;\n    break;" case number_literal : (expression_statement "local_228 = 0x17;" (assignment_expression "local_228 = 0x17" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc9:\n    local_228 = 0x18;\n    break;" case number_literal : (expression_statement "local_228 = 0x18;" (assignment_expression "local_228 = 0x18" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffca:\n    local_228 = 0x19;\n    break;" case number_literal : (expression_statement "local_228 = 0x19;" (assignment_expression "local_228 = 0x19" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcb:\n    local_228 = 0x1a;\n    break;" case number_literal : (expression_statement "local_228 = 0x1a;" (assignment_expression "local_228 = 0x1a" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcc:\n    local_228 = 0x1c;\n    break;" case number_literal : (expression_statement "local_228 = 0x1c;" (assignment_expression "local_228 = 0x1c" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcd:\n    local_228 = 0x1d;\n    break;" case number_literal : (expression_statement "local_228 = 0x1d;" (assignment_expression "local_228 = 0x1d" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffce:\n    local_228 = 0x1f;\n    break;" case number_literal : (expression_statement "local_228 = 0x1f;" (assignment_expression "local_228 = 0x1f" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffcf:\n    local_228 = 0x20;\n    break;" case number_literal : (expression_statement "local_228 = 0x20;" (assignment_expression "local_228 = 0x20" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffd0:\n    local_228 = 0x21;\n    break;" case number_literal : (expression_statement "local_228 = 0x21;" (assignment_expression "local_228 = 0x21" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffd1:\n    local_228 = 0x22;\n    break;" case number_literal : (expression_statement "local_228 = 0x22;" (assignment_expression "local_228 = 0x22" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;" default : (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" identifier = (binary_expression "uVar13 & 4" identifier & number_literal)) ;) (if_statement "if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }" { (if_statement "if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar2 == 0xff95)" ( (binary_expression "uVar2 == 0xff95" identifier == number_literal) )) (compound_statement "{\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 1;" (assignment_expression "local_228 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar2 < 0xff96)" ( (binary_expression "uVar2 < 0xff96" identifier < number_literal) )) (compound_statement "{\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }" { (if_statement "if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" if (parenthesized_expression "(uVar2 == 0xff56)" ( (binary_expression "uVar2 == 0xff56" identifier == number_literal) )) (compound_statement "{\n          local_228 = 6;\n        }" { (expression_statement "local_228 = 6;" (assignment_expression "local_228 = 6" identifier = number_literal) ;) }) (else_clause "else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" else (if_statement "if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" if (parenthesized_expression "(uVar2 < 0xff57)" ( (binary_expression "uVar2 < 0xff57" identifier < number_literal) )) (compound_statement "{\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }" { (expression_statement "local_228 = 1;" (assignment_expression "local_228 = 1" identifier = number_literal) ;) (if_statement "if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }" if (parenthesized_expression "(uVar2 != 0xff50)" ( (binary_expression "uVar2 != 0xff50" identifier != number_literal) )) (compound_statement "{\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }" { (if_statement "if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" if (parenthesized_expression "(uVar2 != 0xff55)" ( (binary_expression "uVar2 != 0xff55" identifier != number_literal) )) (compound_statement "{\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 5;" (assignment_expression "local_228 = 5" identifier = number_literal) ;) })) }) (else_clause "else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" else (compound_statement "{\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" { (expression_statement "local_228 = 4;" (assignment_expression "local_228 = 4" identifier = number_literal) ;) (if_statement "if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }" if (parenthesized_expression "(uVar2 != 0xff57)" ( (binary_expression "uVar2 != 0xff57" identifier != number_literal) )) (compound_statement "{\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }" { (if_statement "if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" if (parenthesized_expression "(uVar2 != 0xff63)" ( (binary_expression "uVar2 != 0xff63" identifier != number_literal) )) (compound_statement "{\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 2;" (assignment_expression "local_228 = 2" identifier = number_literal) ;) })) }))))) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar2 == 0xff9c)" ( (binary_expression "uVar2 == 0xff9c" identifier == number_literal) )) (compound_statement "{\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 4;" (assignment_expression "local_228 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (if_statement "if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }" if (parenthesized_expression "(uVar2 < 0xff9d)" ( (binary_expression "uVar2 < 0xff9d" identifier < number_literal) )) (compound_statement "{\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }" { (expression_statement "local_228 = 5;" (assignment_expression "local_228 = 5" identifier = number_literal) ;) (if_statement "if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }" if (parenthesized_expression "(uVar2 != 0xff9a)" ( (binary_expression "uVar2 != 0xff9a" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }" { (if_statement "if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }" if (parenthesized_expression "(uVar2 != 0xff9b)" ( (binary_expression "uVar2 != 0xff9b" identifier != number_literal) )) (compound_statement "{\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }" { (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 6;" (assignment_expression "local_228 = 6" identifier = number_literal) ;) })) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;) })) (expression_statement "local_228 = 3;" (assignment_expression "local_228 = 3" identifier = number_literal) ;) (if_statement "if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;" if (parenthesized_expression "(((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))" ( (binary_expression "((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e)" (parenthesized_expression "((uVar2 == 0xff9f) || (uVar2 == 0xffff))" ( (binary_expression "(uVar2 == 0xff9f) || (uVar2 == 0xffff)" (parenthesized_expression "(uVar2 == 0xff9f)" ( (binary_expression "uVar2 == 0xff9f" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0xffff)" ( (binary_expression "uVar2 == 0xffff" identifier == number_literal) ))) )) || (parenthesized_expression "(local_228 = 2, uVar2 == 0xff9e)" ( (comma_expression "local_228 = 2, uVar2 == 0xff9e" (assignment_expression "local_228 = 2" identifier = number_literal) , (binary_expression "uVar2 == 0xff9e" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;)) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbca;" goto statement_identifier ;) })) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0014dbfe;" goto statement_identifier ;)) })) (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" identifier = (binary_expression "uVar13 & 4" identifier & number_literal)) ;) (labeled_statement "LAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" statement_identifier : (expression_statement "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" (assignment_expression "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" identifier = (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" * (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" ( (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" * (cast_expression "(long *)(param_3 + 0xda0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) + number_literal) ))))) ;)) (if_statement "if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }" { (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (if_statement "if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" if (parenthesized_expression "((0x17 < local_228 - 0xbU) || (iVar5 != 5))" ( (binary_expression "(0x17 < local_228 - 0xbU) || (iVar5 != 5)" (parenthesized_expression "(0x17 < local_228 - 0xbU)" ( (binary_expression "0x17 < local_228 - 0xbU" number_literal < (binary_expression "local_228 - 0xbU" identifier - number_literal)) )) || (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) ))) )) (compound_statement "{\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }" { (if_statement "if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;" if (parenthesized_expression "((5 < local_228 - 1U) || (iVar5 != 5))" ( (binary_expression "(5 < local_228 - 1U) || (iVar5 != 5)" (parenthesized_expression "(5 < local_228 - 1U)" ( (binary_expression "5 < local_228 - 1U" number_literal < (binary_expression "local_228 - 1U" identifier - number_literal)) )) || (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) ))) )) (goto_statement "goto LAB_0014dd14;" goto statement_identifier ;)) (expression_statement "local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);" (assignment_expression "local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48)" identifier = (call_expression "CONCAT17(local_188._7_1_,0x4749462e4c48)" identifier (argument_list "(local_188._7_1_,0x4749462e4c48)" ( (field_expression "local_188._7_1_" identifier . field_identifier) , number_literal )))) ;) (if_statement "if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" if (parenthesized_expression "(local_228 == 3)" ( (binary_expression "local_228 == 3" identifier == number_literal) )) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }" { (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f)" (subscript_expression "local_147[0]" identifier [ number_literal ]) = (call_expression "CONCAT31(local_147[0]._1_3_,0x7f)" identifier (argument_list "(local_147[0]._1_3_,0x7f)" ( (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" identifier [ number_literal ]) . field_identifier) , number_literal )))) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" else (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)))" identifier (argument_list "(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)))" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f38e" & identifier) , (cast_expression "(int)*(char *)((long)&local_188 + (long)(local_228 + -1))" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((long)&local_188 + (long)(local_228 + -1))" * (cast_expression "(char *)((long)&local_188 + (long)(local_228 + -1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_188 + (long)(local_228 + -1))" ( (binary_expression "(long)&local_188 + (long)(local_228 + -1)" (cast_expression "(long)&local_188" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_188" & identifier)) + (cast_expression "(long)(local_228 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_228 + -1)" ( (binary_expression "local_228 + -1" identifier + number_literal) )))) ))))) ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" else (compound_statement "{\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" { (labeled_statement "LAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;" statement_identifier : (expression_statement "local_188 = 0x54535251504f4e4d;" (assignment_expression "local_188 = 0x54535251504f4e4d" identifier = number_literal) ;)) (expression_statement "local_180 = 0x62615a5958575655;" (assignment_expression "local_180 = 0x62615a5958575655" identifier = number_literal) ;) (expression_statement "local_178 = 0x6a69686766656463;" (assignment_expression "local_178 = 0x6a69686766656463" identifier = number_literal) ;) (expression_statement "local_170 = 0x7271706f6e6d6c6b;" (assignment_expression "local_170 = 0x7271706f6e6d6c6b" identifier = number_literal) ;) (expression_statement "local_168 = 0x7a79787776757473;" (assignment_expression "local_168 = 0x7a79787776757473" identifier = number_literal) ;) (expression_statement "local_160 = 0x7b605f5e5d5c5b40;" (assignment_expression "local_160 = 0x7b605f5e5d5c5b40" identifier = number_literal) ;) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (switch_statement "switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }" switch (parenthesized_expression "(uVar2)" ( identifier )) (compound_statement "{\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }" { (case_statement "case 0xffbf:\n        iVar5 = 1;\n        break;" case number_literal : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc0:\n        iVar5 = 2;\n        break;" case number_literal : (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc1:\n        iVar5 = 3;\n        break;" case number_literal : (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc2:\n        iVar5 = 4;\n        break;" case number_literal : (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc3:\n        iVar5 = 5;\n        break;" case number_literal : (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc4:\n        iVar5 = 6;\n        break;" case number_literal : (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc5:\n        iVar5 = 7;\n        break;" case number_literal : (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc6:\n        break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0xffc7:\n        iVar5 = 9;\n        break;" case number_literal : (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc8:\n        iVar5 = 10;\n        break;" case number_literal : (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xffc9:\n        iVar5 = 0xb;\n        break;" case number_literal : (expression_statement "iVar5 = 0xb;" (assignment_expression "iVar5 = 0xb" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n        iVar5 = 0;" default : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;)) })) (if_statement "if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }" if (parenthesized_expression "((uVar13 & 1) != 0)" ( (binary_expression "(uVar13 & 1) != 0" (parenthesized_expression "(uVar13 & 1)" ( (binary_expression "uVar13 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar5 = iVar5 + 0xc;\n      }" { (expression_statement "iVar5 = iVar5 + 0xc;" (assignment_expression "iVar5 = iVar5 + 0xc" identifier = (binary_expression "iVar5 + 0xc" identifier + number_literal)) ;) })) (if_statement "if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = iVar5 + 0x18;\n      }" { (expression_statement "iVar5 = iVar5 + 0x18;" (assignment_expression "iVar5 = iVar5 + 0x18" identifier = (binary_expression "iVar5 + 0x18" identifier + number_literal)) ;) })) (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5))" identifier (argument_list "(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5))" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f38e" & identifier) , (cast_expression "(int)*(char *)((long)&local_188 + (long)iVar5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((long)&local_188 + (long)iVar5)" * (cast_expression "(char *)((long)&local_188 + (long)iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_188 + (long)iVar5)" ( (binary_expression "(long)&local_188 + (long)iVar5" (cast_expression "(long)&local_188" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_188" & identifier)) + (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }))) (labeled_statement "LAB_0014d90a:\n    iVar5 = iVar16 - iVar6;" statement_identifier : (expression_statement "iVar5 = iVar16 - iVar6;" (assignment_expression "iVar5 = iVar16 - iVar6" identifier = (binary_expression "iVar16 - iVar6" identifier - identifier)) ;)) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" else (compound_statement "{\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" { (labeled_statement "LAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" statement_identifier : (if_statement "if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(local_228 - 1U < 6)" ( (binary_expression "local_228 - 1U < 6" (binary_expression "local_228 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228])" identifier (argument_list "(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228])" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (cast_expression "(int)" HLMEIG"[local_228]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "" HLMEIG"[local_228]" (string_literal "" HLMEIG"" " string_content ") [ identifier ])) ))) ;) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" identifier = (binary_expression "10 < local_228" number_literal < identifier)) ;) (if_statement "if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;" if (parenthesized_expression "((local_228 - 0xbU < 0x18) && (iVar5 == 5))" ( (binary_expression "(local_228 - 0xbU < 0x18) && (iVar5 == 5)" (parenthesized_expression "(local_228 - 0xbU < 0x18)" ( (binary_expression "local_228 - 0xbU < 0x18" (binary_expression "local_228 - 0xbU" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(iVar5 == 5)" ( (binary_expression "iVar5 == 5" identifier == number_literal) ))) )) (goto_statement "goto LAB_0014ddd3;" goto statement_identifier ;)) (labeled_statement "LAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" statement_identifier : (if_statement "if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe))" ( (binary_expression "((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)" (parenthesized_expression "((iVar5 == 4) || (iVar14 != 0))" ( (binary_expression "(iVar5 == 4) || (iVar14 != 0)" (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_228 - 0xbU < 0xe)" ( (binary_expression "local_228 - 0xbU < 0xe" (binary_expression "local_228 - 0xbU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" { (expression_statement "iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);" (assignment_expression "iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228)" identifier = (binary_expression "(uint)(0xf < local_228) + (uint)(0x15 < local_228)" (call_expression "(uint)(0xf < local_228)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xf < local_228)" ( (binary_expression "0xf < local_228" number_literal < identifier) ))) + (call_expression "(uint)(0x15 < local_228)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x15 < local_228)" ( (binary_expression "0x15 < local_228" number_literal < identifier) ))))) ;) (if_statement "if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , (binary_expression "(local_228 + 0x45) - iVar5" (parenthesized_expression "(local_228 + 0x45)" ( (binary_expression "local_228 + 0x45" identifier + number_literal) )) - identifier) ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" else (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (binary_expression "(local_228 + 0x45) - iVar5" (parenthesized_expression "(local_228 + 0x45)" ( (binary_expression "local_228 + 0x45" identifier + number_literal) )) - identifier) ))) ;) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) }))) (if_statement "if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10))" ( (binary_expression "((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)" (parenthesized_expression "((bool)(iVar5 == 1 & bVar3))" ( (cast_expression "(bool)(iVar5 == 1 & bVar3)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(iVar5 == 1 & bVar3)" ( (binary_expression "iVar5 == 1 & bVar3" (binary_expression "iVar5 == 1" identifier == number_literal) & identifier) ))) )) && (parenthesized_expression "(local_228 < 0x10)" ( (binary_expression "local_228 < 0x10" identifier < number_literal) ))) )) (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36)" identifier (argument_list "(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001827e1" & identifier) , (binary_expression "local_228 + 0x36" identifier + number_literal) ))) ;) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (if_statement "if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" if (parenthesized_expression "(((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf))" ( (binary_expression "((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)" (parenthesized_expression "((bool)(iVar5 == 2 & bVar3))" ( (cast_expression "(bool)(iVar5 == 2 & bVar3)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(iVar5 == 2 & bVar3)" ( (binary_expression "iVar5 == 2 & bVar3" (binary_expression "iVar5 == 2" identifier == number_literal) & identifier) ))) )) && (parenthesized_expression "(local_228 < 0xf)" ( (binary_expression "local_228 < 0xf" identifier < number_literal) ))) )) (compound_statement "{\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" { (if_statement "if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f389" & identifier) , (binary_expression "local_228 + 0x45" identifier + number_literal) ))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" else (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" { (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45)" identifier (argument_list "(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0017f385" & identifier) , (binary_expression "local_228 + 0x45" identifier + number_literal) ))) ;) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (if_statement "if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" if (parenthesized_expression "(((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0))" ( (binary_expression "((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)" (parenthesized_expression "((local_228 == 1) || (local_228 == 4))" ( (binary_expression "(local_228 == 1) || (local_228 == 4)" (parenthesized_expression "(local_228 == 1)" ( (binary_expression "local_228 == 1" identifier == number_literal) )) || (parenthesized_expression "(local_228 == 4)" ( (binary_expression "local_228 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40)" identifier = (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x40)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" * (cast_expression "(undefined8 *)(param_3 + 0x22d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22d0)" ( (binary_expression "param_3 + 0x22d0" identifier + number_literal) )))) , number_literal )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }" { (expression_statement "puVar9 = &DAT_001827d9;" (assignment_expression "puVar9 = &DAT_001827d9" identifier = (pointer_expression "&DAT_001827d9" & identifier)) ;) (if_statement "if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }" if (parenthesized_expression "(local_228 != 1)" ( (binary_expression "local_228 != 1" identifier != number_literal) )) (compound_statement "{\n        puVar9 = &DAT_001827dd;\n      }" { (expression_statement "puVar9 = &DAT_001827dd;" (assignment_expression "puVar9 = &DAT_001827dd" identifier = (pointer_expression "&DAT_001827dd" & identifier)) ;) })) (expression_statement "iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);" (assignment_expression "iVar16 = __sprintf_chk(local_147,1,0xff,puVar9)" identifier = (call_expression "__sprintf_chk(local_147,1,0xff,puVar9)" identifier (argument_list "(local_147,1,0xff,puVar9)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" else (compound_statement "{\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" { (if_statement "if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }" if (parenthesized_expression "(local_228 != 0)" ( (binary_expression "local_228 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }" { (expression_statement "iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);" (assignment_expression "iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228)" identifier = (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228)" identifier (argument_list "(local_147,1,0xff,&DAT_001827e7,local_228)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_001827e7" & identifier) , identifier )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0014d90a;" goto statement_identifier ;) })) (switch_statement "switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }" switch (parenthesized_expression "(param_2[7])" ( (subscript_expression "param_2[7]" identifier [ number_literal ]) )) (compound_statement "{\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }" { (case_statement "case 0xff51:" case number_literal :) (case_statement "case 0xff96:\n        uVar12 = 0x44;\n        break;" case number_literal : (expression_statement "uVar12 = 0x44;" (assignment_expression "uVar12 = 0x44" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff52:" case number_literal :) (case_statement "case 0xff97:\n        uVar12 = 0x41;\n        break;" case number_literal : (expression_statement "uVar12 = 0x41;" (assignment_expression "uVar12 = 0x41" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff53:" case number_literal :) (case_statement "case 0xff98:\n        uVar12 = 0x43;\n        break;" case number_literal : (expression_statement "uVar12 = 0x43;" (assignment_expression "uVar12 = 0x43" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xff54:" case number_literal :) (case_statement "case 0xff99:\n        uVar12 = 0x42;\n        break;" case number_literal : (expression_statement "uVar12 = 0x42;" (assignment_expression "uVar12 = 0x42" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n        local_228 = local_224;\n        goto LAB_0014e155;" default : (expression_statement "local_228 = local_224;" (assignment_expression "local_228 = local_224" identifier = identifier) ;) (goto_statement "goto LAB_0014e155;" goto statement_identifier ;)) (case_statement "case 0xff58:" case number_literal :) (case_statement "case 0xff9d:\n        uVar12 = 0x47;" case number_literal : (expression_statement "uVar12 = 0x47;" (assignment_expression "uVar12 = 0x47" identifier = number_literal) ;)) })) (expression_statement "iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);" (assignment_expression "iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" identifier = (call_expression "FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" identifier (argument_list "(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" ( identifier , (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) , identifier , (binary_expression "param_2[6] & 4" (subscript_expression "param_2[6]" identifier [ number_literal ]) & number_literal) )))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }))) (labeled_statement "LAB_0014e155:\n    iVar5 = iVar16 - iVar6;" statement_identifier : (expression_statement "iVar5 = iVar16 - iVar6;" (assignment_expression "iVar5 = iVar16 - iVar6" identifier = (binary_expression "iVar16 - iVar6" identifier - identifier)) ;)) (if_statement "if (iVar5 < 1) goto LAB_0014cf81;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0014cf81;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" statement_identifier : (if_statement "if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }" { (expression_statement "(&local_148)[iVar16] = '\0';" (assignment_expression "(&local_148)[iVar16] = '\0'" (subscript_expression "(&local_148)[iVar16]" (parenthesized_expression "(&local_148)" ( (pointer_expression "&local_148" & identifier) )) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }" if (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }" { (expression_statement "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);" (call_expression "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1)" identifier (argument_list "(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1)" ( (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) , (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" & identifier) + identifier) , number_literal , number_literal ))) ;) })) }) (else_clause "else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" else (if_statement "if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0xd10) == 0)" ( (binary_expression "*(int *)(param_3 + 0xd10) == 0" (pointer_expression "*(int *)(param_3 + 0xd10)" * (cast_expression "(int *)(param_3 + 0xd10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd10)" ( (binary_expression "param_3 + 0xd10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }" { (if_statement "if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" if (parenthesized_expression "(local_228 == 0)" ( (binary_expression "local_228 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }" { (labeled_statement "LAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" statement_identifier : (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" if (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" { (expression_statement "FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);" (call_expression "FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1)" identifier (argument_list "(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1)" ( (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) , identifier , (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" & identifier) + identifier) , identifier , number_literal ))) ;) }))) }) (else_clause "else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" else (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" if (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" { (expression_statement "FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);" (call_expression "FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1)" identifier (argument_list "(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1)" ( (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) , (binary_expression "local_208 + iVar6" identifier + identifier) , identifier , number_literal ))) ;) })))) }) (else_clause "else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" else (compound_statement "{\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" { (labeled_statement "LAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" statement_identifier : (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" if (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" ( (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" { (expression_statement "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);" (call_expression "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1)" identifier (argument_list "(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1)" ( (pointer_expression "*(long *)(param_3 + 0xd88)" * (cast_expression "(long *)(param_3 + 0xd88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd88)" ( (binary_expression "param_3 + 0xd88" identifier + number_literal) )))) , (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" & identifier) + identifier) , identifier , number_literal ))) ;) }))) })))))) (expression_statement "FUN_001495b0(param_3,0);" (call_expression "FUN_001495b0(param_3,0)" identifier (argument_list "(param_3,0)" ( identifier , number_literal ))) ;) (expression_statement "FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));" (call_expression "FUN_0013112b(*(undefined8 *)(param_3 + 0xda0))" identifier (argument_list "(*(undefined8 *)(param_3 + 0xda0))" ( (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" * (cast_expression "(undefined8 *)(param_3 + 0xda0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xda0)" ( (binary_expression "param_3 + 0xda0" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & (subscript_expression IDENT [ LIT ])) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (switch_statement switch (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 ( IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (unary_expression - (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / LIT) ))) ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) && (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ))) )) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) ))) & LIT) ))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (unary_expression ~ IDENT) - LIT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT , LIT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT + LIT) ]) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & IDENT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) ;) }))))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) << LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ))) & LIT)) ;) })) }))))))))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT == LIT) ))) & LIT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT == LIT) ))) & LIT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (pointer_expression * IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (subscript_expression IDENT [ LIT ]) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , (subscript_expression IDENT [ LIT ]) )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))))) ;) }))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = LIT) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (string_literal " string_content ") [ IDENT ])) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) & IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) & IDENT) ))) )) && (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 ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT , LIT ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression (pointer_expression & IDENT) + IDENT) , IDENT , LIT ))) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + IDENT) , IDENT , LIT ))) ;) })))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression & IDENT) + IDENT) , IDENT , LIT ))) ;) }))) })))))) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)\n\n{\n  char cVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  int iVar6;\n  ulong uVar7;\n  long lVar8;\n  undefined *puVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  int local_228;\n  int local_224;\n  undefined4 local_220;\n  undefined4 local_214;\n  int *local_210;\n  int local_208 [32];\n  undefined8 local_188;\n  undefined8 local_180;\n  undefined8 local_178;\n  undefined8 local_170;\n  undefined8 local_168;\n  undefined8 local_160;\n  undefined1 local_158;\n  char local_148;\n  uint local_147 [63];\n  undefined1 local_49;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  *(int *)(param_3 + 0x22e0) = param_2[5];\n  if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;\n  if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;\n  if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;\n  if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }\n  uVar7 = 0xffffffffffffffff;\n  pcVar11 = *(char **)(param_2 + 10);\n  do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');\n  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);\n  local_210 = local_208;\n  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);\n  (&local_148)[iVar6 + 1] = '\0';\n  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }\n  uVar2 = param_2[6];\n  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }\n  iVar6 = 0;\n  if (iVar16 != 1) goto LAB_0014d45d;\n  if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  iVar14 = param_2[7];\n  if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }\n  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }\n  iVar14 = param_2[7];\n  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  local_147[0] = 0x5a5b1b;\n  local_224 = 0;\n  iVar16 = 4;\nLAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n  uVar2 = param_2[7];\n  switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar13 = param_2[6];\n  uVar15 = uVar13 & 4;\nLAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n  if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }\n  FUN_001495b0(param_3,0);\n  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));\nLAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return 1;\n}" (type_identifier "undefined8") (function_declarator "FUN_0014cf3c(undefined8 param_1,int *param_2,long param_3)" (identifier "FUN_0014cf3c") (parameter_list "(undefined8 param_1,int *param_2,long param_3)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  int iVar6;\n  ulong uVar7;\n  long lVar8;\n  undefined *puVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  int local_228;\n  int local_224;\n  undefined4 local_220;\n  undefined4 local_214;\n  int *local_210;\n  int local_208 [32];\n  undefined8 local_188;\n  undefined8 local_180;\n  undefined8 local_178;\n  undefined8 local_170;\n  undefined8 local_168;\n  undefined8 local_160;\n  undefined1 local_158;\n  char local_148;\n  uint local_147 [63];\n  undefined1 local_49;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  *(int *)(param_3 + 0x22e0) = param_2[5];\n  if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }\nLAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;\n  if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }\n  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }\nLAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;\n  if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;\n  if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }\n  if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }\n  if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);\n  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }\n  uVar7 = 0xffffffffffffffff;\n  pcVar11 = *(char **)(param_2 + 10);\n  do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');\n  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);\n  local_210 = local_208;\n  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);\n  (&local_148)[iVar6 + 1] = '\0';\n  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }\n  uVar2 = param_2[6];\n  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }\n  iVar6 = 0;\n  if (iVar16 != 1) goto LAB_0014d45d;\n  if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }\n  iVar14 = param_2[7];\n  if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }\n  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }\n  iVar14 = param_2[7];\n  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }\n  local_147[0] = 0x5a5b1b;\n  local_224 = 0;\n  iVar16 = 4;\nLAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }\nswitchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }\nswitchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n  uVar2 = param_2[7];\n  switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }\n  uVar13 = param_2[6];\n  uVar15 = uVar13 & 4;\nLAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n  if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }\nLAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }\n  FUN_001495b0(param_3,0);\n  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));\nLAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return 1;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "int local_228;" (primitive_type "int") (identifier "local_228") (; ";")) (declaration "int local_224;" (primitive_type "int") (identifier "local_224") (; ";")) (declaration "undefined4 local_220;" (type_identifier "undefined4") (identifier "local_220") (; ";")) (declaration "undefined4 local_214;" (type_identifier "undefined4") (identifier "local_214") (; ";")) (declaration "int *local_210;" (primitive_type "int") (pointer_declarator "*local_210" (* "*") (identifier "local_210")) (; ";")) (declaration "int local_208 [32];" (primitive_type "int") (array_declarator "local_208 [32]" (identifier "local_208") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "undefined8 local_188;" (type_identifier "undefined8") (identifier "local_188") (; ";")) (declaration "undefined8 local_180;" (type_identifier "undefined8") (identifier "local_180") (; ";")) (declaration "undefined8 local_178;" (type_identifier "undefined8") (identifier "local_178") (; ";")) (declaration "undefined8 local_170;" (type_identifier "undefined8") (identifier "local_170") (; ";")) (declaration "undefined8 local_168;" (type_identifier "undefined8") (identifier "local_168") (; ";")) (declaration "undefined8 local_160;" (type_identifier "undefined8") (identifier "local_160") (; ";")) (declaration "undefined1 local_158;" (type_identifier "undefined1") (identifier "local_158") (; ";")) (declaration "char local_148;" (primitive_type "char") (identifier "local_148") (; ";")) (declaration "uint local_147 [63];" (type_identifier "uint") (array_declarator "local_147 [63]" (identifier "local_147") ([ "[") (number_literal "63") (] "]")) (; ";")) (declaration "undefined1 local_49;" (type_identifier "undefined1") (identifier "local_49") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_3 + 0x22e0) = param_2[5];" (assignment_expression "*(int *)(param_3 + 0x22e0) = param_2[5]" (pointer_expression "*(int *)(param_3 + 0x22e0)" (* "*") (cast_expression "(int *)(param_3 + 0x22e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22e0)" (( "(") (binary_expression "param_3 + 0x22e0" (identifier "param_3") (+ "+") (number_literal "0x22e0")) () ")")))) (= "=") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (*param_2 == 9) {\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }" (if "if") (parenthesized_expression "(*param_2 == 9)" (( "(") (binary_expression "*param_2 == 9" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "9")) () ")")) (compound_statement "{\n    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }\n    local_148 = (char)*(int *)(param_3 + 0xd68);\n    if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }\n    local_220 = 1;\n    iVar5 = 1;\n    iVar6 = 0;\n    goto LAB_0014e201;\n  }" ({ "{") (if_statement "if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)) {\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }" (if "if") (parenthesized_expression "(((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2))" (( "(") (binary_expression "((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||\n       (*(int *)(param_3 + 0xd6c) < 2)" (parenthesized_expression "((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0))" (( "(") (binary_expression "(3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)" (parenthesized_expression "(3 < param_2[7] - 0xffe7U)" (( "(") (binary_expression "3 < param_2[7] - 0xffe7U" (number_literal "3") (< "<") (binary_expression "param_2[7] - 0xffe7U" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (- "-") (number_literal "0xffe7U"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_3 + 0xd68) < 0)" (( "(") (binary_expression "*(int *)(param_3 + 0xd68) < 0" (pointer_expression "*(int *)(param_3 + 0xd68)" (* "*") (cast_expression "(int *)(param_3 + 0xd68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd68)" (( "(") (binary_expression "param_3 + 0xd68" (identifier "param_3") (+ "+") (number_literal "0xd68")) () ")")))) (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_3 + 0xd6c) < 2)" (( "(") (binary_expression "*(int *)(param_3 + 0xd6c) < 2" (pointer_expression "*(int *)(param_3 + 0xd6c)" (* "*") (cast_expression "(int *)(param_3 + 0xd6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd6c)" (( "(") (binary_expression "param_3 + 0xd6c" (identifier "param_3") (+ "+") (number_literal "0xd6c")) () ")")))) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);\n      if (iVar6 != 0) goto LAB_0014cf81;\n      goto LAB_0014cf74;\n    }" ({ "{") (expression_statement "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);" (assignment_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" (identifier "iVar6") (= "=") (call_expression "gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" (identifier "gtk_im_context_filter_keypress") (argument_list "(*(undefined8 *)(param_3 + 0x68),param_2)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x68)" (( "(") (binary_expression "param_3 + 0x68" (identifier "param_3") (+ "+") (number_literal "0x68")) () ")")))) (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_0014cf81;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";"))) (goto_statement "goto LAB_0014cf74;" (goto "goto") (statement_identifier "LAB_0014cf74") (; ";")) (} "}"))) (expression_statement "local_148 = (char)*(int *)(param_3 + 0xd68);" (assignment_expression "local_148 = (char)*(int *)(param_3 + 0xd68)" (identifier "local_148") (= "=") (cast_expression "(char)*(int *)(param_3 + 0xd68)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(int *)(param_3 + 0xd68)" (* "*") (cast_expression "(int *)(param_3 + 0xd68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd68)" (( "(") (binary_expression "param_3 + 0xd68" (identifier "param_3") (+ "+") (number_literal "0xd68")) () ")")))))) (; ";")) (if_statement "if (*(int *)(param_3 + 0xd10) != 0) {\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0xd10) != 0)" (( "(") (binary_expression "*(int *)(param_3 + 0xd10) != 0" (pointer_expression "*(int *)(param_3 + 0xd10)" (* "*") (cast_expression "(int *)(param_3 + 0xd10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd10)" (( "(") (binary_expression "param_3 + 0xd10" (identifier "param_3") (+ "+") (number_literal "0xd10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar6 = 0;\n      iVar5 = 1;\n      goto LAB_0014d003;\n    }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0014d003;" (goto "goto") (statement_identifier "LAB_0014d003") (; ";")) (} "}"))) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" (identifier "local_220") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0014e201;" (goto "goto") (statement_identifier "LAB_0014e201") (; ";")) (} "}"))) (labeled_statement "LAB_0014cf74:\n  if (*param_2 != 8) goto LAB_0014cf81;" (statement_identifier "LAB_0014cf74") (: ":") (if_statement "if (*param_2 != 8) goto LAB_0014cf81;" (if "if") (parenthesized_expression "(*param_2 != 8)" (( "(") (binary_expression "*param_2 != 8" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")))) (if_statement "if (param_2[7] - 0xffe7U < 4) {\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(param_2[7] - 0xffe7U < 4)" (( "(") (binary_expression "param_2[7] - 0xffe7U < 4" (binary_expression "param_2[7] - 0xffe7U" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (- "-") (number_literal "0xffe7U")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;\n    *(undefined4 *)(param_3 + 0xd6c) = 0;\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "*(undefined4 *)(param_3 + 0xd68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_3 + 0xd68) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_3 + 0xd68)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0xd68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd68)" (( "(") (binary_expression "param_3 + 0xd68" (identifier "param_3") (+ "+") (number_literal "0xd68")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined4 *)(param_3 + 0xd6c) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 0xd6c) = 0" (pointer_expression "*(undefined4 *)(param_3 + 0xd6c)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0xd6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd6c)" (( "(") (binary_expression "param_3 + 0xd6c" (identifier "param_3") (+ "+") (number_literal "0xd6c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (if_statement "if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2))" (( "(") (binary_expression "((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&\n     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)" (parenthesized_expression "((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0)" (( "(") (binary_expression "(*(uint *)(param_3 + 0x2300) & param_2[6]) != 0" (parenthesized_expression "(*(uint *)(param_3 + 0x2300) & param_2[6])" (( "(") (binary_expression "*(uint *)(param_3 + 0x2300) & param_2[6]" (pointer_expression "*(uint *)(param_3 + 0x2300)" (* "*") (cast_expression "(uint *)(param_3 + 0x2300)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2300)" (( "(") (binary_expression "param_3 + 0x2300" (identifier "param_3") (+ "+") (number_literal "0x2300")) () ")")))) (& "&") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)" (( "(") (comma_expression "iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2" (assignment_expression "iVar6 = *(int *)(param_3 + 0xd68)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_3 + 0xd68)" (* "*") (cast_expression "(int *)(param_3 + 0xd68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd68)" (( "(") (binary_expression "param_3 + 0xd68" (identifier "param_3") (+ "+") (number_literal "0xd68")) () ")"))))) (, ",") (binary_expression "iVar6 != -2" (identifier "iVar6") (!= "!=") (number_literal "-2"))) () ")"))) () ")")) (compound_statement "{\n    iVar5 = 8;\n    switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }\n    if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }\n    *(int *)(param_3 + 0xd68) = iVar5;\n    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (switch_statement "switch(param_2[7]) {\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }" (switch "switch") (parenthesized_expression "(param_2[7])" (( "(") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) () ")")) (compound_statement "{\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 7;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 4;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 6;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 2;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 9;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 3;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 1;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 5;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0;\n      break;\n    default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;\n    }" ({ "{") (case_statement "case 0xff95:" (case "case") (number_literal "0xff95") (: ":")) (case_statement "case 0xffb7:\n      iVar5 = 7;\n      break;" (case "case") (number_literal "0xffb7") (: ":") (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" (identifier "iVar5") (= "=") (number_literal "7")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff96:" (case "case") (number_literal "0xff96") (: ":")) (case_statement "case 0xffb4:\n      iVar5 = 4;\n      break;" (case "case") (number_literal "0xffb4") (: ":") (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff97:" (case "case") (number_literal "0xff97") (: ":")) (case_statement "case 0xffb8:\n      break;" (case "case") (number_literal "0xffb8") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff98:" (case "case") (number_literal "0xff98") (: ":")) (case_statement "case 0xffb6:\n      iVar5 = 6;\n      break;" (case "case") (number_literal "0xffb6") (: ":") (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" (identifier "iVar5") (= "=") (number_literal "6")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff99:" (case "case") (number_literal "0xff99") (: ":")) (case_statement "case 0xffb2:\n      iVar5 = 2;\n      break;" (case "case") (number_literal "0xffb2") (: ":") (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" (identifier "iVar5") (= "=") (number_literal "2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9a:" (case "case") (number_literal "0xff9a") (: ":")) (case_statement "case 0xffb9:\n      iVar5 = 9;\n      break;" (case "case") (number_literal "0xffb9") (: ":") (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9b:" (case "case") (number_literal "0xff9b") (: ":")) (case_statement "case 0xffb3:\n      iVar5 = 3;\n      break;" (case "case") (number_literal "0xffb3") (: ":") (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9c:" (case "case") (number_literal "0xff9c") (: ":")) (case_statement "case 0xffb1:\n      iVar5 = 1;\n      break;" (case "case") (number_literal "0xffb1") (: ":") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9d:" (case "case") (number_literal "0xff9d") (: ":")) (case_statement "case 0xffb5:\n      iVar5 = 5;\n      break;" (case "case") (number_literal "0xffb5") (: ":") (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9e:" (case "case") (number_literal "0xff9e") (: ":")) (case_statement "case 0xffb0:\n      iVar5 = 0;\n      break;" (case "case") (number_literal "0xffb0") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;\n      goto LAB_0014d090;" (default "default") (: ":") (expression_statement "*(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;" (assignment_expression "*(undefined4 *)(param_3 + 0xd68) = 0xfffffffe" (pointer_expression "*(undefined4 *)(param_3 + 0xd68)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0xd68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd68)" (( "(") (binary_expression "param_3 + 0xd68" (identifier "param_3") (+ "+") (number_literal "0xd68")) () ")")))) (= "=") (number_literal "0xfffffffe")) (; ";")) (goto_statement "goto LAB_0014d090;" (goto "goto") (statement_identifier "LAB_0014d090") (; ";"))) (} "}"))) (if_statement "if (iVar6 != -1) {\n      iVar5 = iVar5 + iVar6 * 10;\n    }" (if "if") (parenthesized_expression "(iVar6 != -1)" (( "(") (binary_expression "iVar6 != -1" (identifier "iVar6") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      iVar5 = iVar5 + iVar6 * 10;\n    }" ({ "{") (expression_statement "iVar5 = iVar5 + iVar6 * 10;" (assignment_expression "iVar5 = iVar5 + iVar6 * 10" (identifier "iVar5") (= "=") (binary_expression "iVar5 + iVar6 * 10" (identifier "iVar5") (+ "+") (binary_expression "iVar6 * 10" (identifier "iVar6") (* "*") (number_literal "10")))) (; ";")) (} "}"))) (expression_statement "*(int *)(param_3 + 0xd68) = iVar5;" (assignment_expression "*(int *)(param_3 + 0xd68) = iVar5" (pointer_expression "*(int *)(param_3 + 0xd68)" (* "*") (cast_expression "(int *)(param_3 + 0xd68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd68)" (( "(") (binary_expression "param_3 + 0xd68" (identifier "param_3") (+ "+") (number_literal "0xd68")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;" (assignment_expression "*(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1" (pointer_expression "*(int *)(param_3 + 0xd6c)" (* "*") (cast_expression "(int *)(param_3 + 0xd6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd6c)" (( "(") (binary_expression "param_3 + 0xd6c" (identifier "param_3") (+ "+") (number_literal "0xd6c")) () ")")))) (= "=") (binary_expression "*(int *)(param_3 + 0xd6c) + 1" (pointer_expression "*(int *)(param_3 + 0xd6c)" (* "*") (cast_expression "(int *)(param_3 + 0xd6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd6c)" (( "(") (binary_expression "param_3 + 0xd6c" (identifier "param_3") (+ "+") (number_literal "0xd6c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (labeled_statement "LAB_0014d090:\n  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;" (statement_identifier "LAB_0014d090") (: ":") (expression_statement "uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004" (identifier "uVar7") (= "=") (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" (* "*") (cast_expression "(ulong *)(param_2 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xffffffff00000004"))) (; ";"))) (if_statement "if (uVar7 == 0x3e00000004) {\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(uVar7 == 0x3e00000004)" (( "(") (binary_expression "uVar7 == 0x3e00000004" (identifier "uVar7") (== "==") (number_literal "0x3e00000004")) () ")")) (compound_statement "{\n    FUN_0014cd38(param_3,1);\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "FUN_0014cd38(param_3,1);" (call_expression "FUN_0014cd38(param_3,1)" (identifier "FUN_0014cd38") (argument_list "(param_3,1)" (( "(") (identifier "param_3") (, ",") (number_literal "1") () ")"))) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (if_statement "if (uVar7 == 0x3c00000004) {\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(uVar7 == 0x3c00000004)" (( "(") (binary_expression "uVar7 == 0x3c00000004" (identifier "uVar7") (== "==") (number_literal "0x3c00000004")) () ")")) (compound_statement "{\n    FUN_0014cd38(param_3,0xffffffff);\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "FUN_0014cd38(param_3,0xffffffff);" (call_expression "FUN_0014cd38(param_3,0xffffffff)" (identifier "FUN_0014cd38") (argument_list "(param_3,0xffffffff)" (( "(") (identifier "param_3") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (expression_statement "uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;" (assignment_expression "uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001" (identifier "uVar10") (= "=") (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" (* "*") (cast_expression "(ulong *)(param_2 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xffffffff00000001"))) (; ";")) (if_statement "if (uVar10 == 0xff5500000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(uVar10 == 0xff5500000001)" (( "(") (binary_expression "uVar10 == 0xff5500000001" (identifier "uVar10") (== "==") (number_literal "0xff5500000001")) () ")")) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2))" (identifier "FUN_001371ed") (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2))" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0xda0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (, ",") (number_literal "0") (, ",") (unary_expression "-(*(int *)(param_3 + 0xd58) / 2)" (- "-") (parenthesized_expression "(*(int *)(param_3 + 0xd58) / 2)" (( "(") (binary_expression "*(int *)(param_3 + 0xd58) / 2" (pointer_expression "*(int *)(param_3 + 0xd58)" (* "*") (cast_expression "(int *)(param_3 + 0xd58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd58)" (( "(") (binary_expression "param_3 + 0xd58" (identifier "param_3") (+ "+") (number_literal "0xd58")) () ")")))) (/ "/") (number_literal "2")) () ")"))) () ")"))) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (if_statement "if (uVar7 == 0xff5500000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(uVar7 == 0xff5500000004)" (( "(") (binary_expression "uVar7 == 0xff5500000004" (identifier "uVar7") (== "==") (number_literal "0xff5500000004")) () ")")) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff)" (identifier "FUN_001371ed") (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0xda0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (if_statement "if (uVar10 == 0xff5600000001) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(uVar10 == 0xff5600000001)" (( "(") (binary_expression "uVar10 == 0xff5600000001" (identifier "uVar10") (== "==") (number_literal "0xff5600000001")) () ")")) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2)" (identifier "FUN_001371ed") (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0xda0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(param_3 + 0xd58) / 2" (pointer_expression "*(int *)(param_3 + 0xd58)" (* "*") (cast_expression "(int *)(param_3 + 0xd58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd58)" (( "(") (binary_expression "param_3 + 0xd58" (identifier "param_3") (+ "+") (number_literal "0xd58")) () ")")))) (/ "/") (number_literal "2")) () ")"))) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (if_statement "if (uVar7 == 0xff5600000004) {\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(uVar7 == 0xff5600000004)" (( "(") (binary_expression "uVar7 == 0xff5600000004" (identifier "uVar7") (== "==") (number_literal "0xff5600000004")) () ")")) (compound_statement "{\n    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);" (call_expression "FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1)" (identifier "FUN_001371ed") (argument_list "(*(undefined8 *)(param_3 + 0xda0),0,1)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0xda0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (if_statement "if (uVar10 == 0xff6300000001) {\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(uVar10 == 0xff6300000001)" (( "(") (binary_expression "uVar10 == 0xff6300000001" (identifier "uVar10") (== "==") (number_literal "0xff6300000001")) () ")")) (compound_statement "{\n    FUN_0014b0b2(param_3);\n    goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "FUN_0014b0b2(param_3);" (call_expression "FUN_0014b0b2(param_3)" (identifier "FUN_0014b0b2") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e)" (identifier "iVar5") (= "=") (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e)" (identifier "FUN_0011558e") (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x4e)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x22d0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22d0)" (( "(") (binary_expression "param_3 + 0x22d0" (identifier "param_3") (+ "+") (number_literal "0x22d0")) () ")")))) (, ",") (number_literal "0x4e") () ")")))) (; ";")) (if_statement "if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }\n  else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" (if "if") (parenthesized_expression "((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0))" (( "(") (binary_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||\n     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)" (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0)" (( "(") (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac)" (* "*") (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1ac)" (( "(") (binary_expression "*(long *)(param_3 + 0xda0) + 0x1ac" (pointer_expression "*(long *)(param_3 + 0xda0)" (* "*") (cast_expression "(long *)(param_3 + 0xda0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (+ "+") (number_literal "0x1ac")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)" (( "(") (comma_expression "iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0" (assignment_expression "iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43)" (identifier "iVar6") (= "=") (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43)" (identifier "FUN_0011558e") (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x43)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x22d0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22d0)" (( "(") (binary_expression "param_3 + 0x22d0" (identifier "param_3") (+ "+") (number_literal "0x22d0")) () ")")))) (, ",") (number_literal "0x43") () ")")))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    bVar3 = false;\nLAB_0014d16b:\n    local_148 = '\x1b';\n    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;\n  }" ({ "{") (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_0014d16b:\n    local_148 = '\x1b';" (statement_identifier "LAB_0014d16b") (: ":") (expression_statement "local_148 = '\x1b';" (assignment_expression "local_148 = '\x1b'" (identifier "local_148") (= "=") (char_literal "'\x1b'" (' "'") (escape_sequence "\x1b") (' "'"))) (; ";"))) (if_statement "if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       ) goto LAB_0014cf81;" (if "if") (parenthesized_expression "(((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)\n       )" (( "(") (binary_expression "((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&\n       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)" (parenthesized_expression "((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U))))" (( "(") (binary_expression "(iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))" (( "(") (parenthesized_expression "(8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U))" (( "(") (binary_expression "8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)" (binary_expression "8 < param_2[7] - 0xff95U" (number_literal "8") (< "<") (binary_expression "param_2[7] - 0xff95U" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (- "-") (number_literal "0xff95U"))) (&& "&&") (parenthesized_expression "(8 < param_2[7] - 0xffb1U)" (( "(") (binary_expression "8 < param_2[7] - 0xffb1U" (number_literal "8") (< "<") (binary_expression "param_2[7] - 0xffb1U" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (- "-") (number_literal "0xffb1U"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)" (( "(") (comma_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0" (assignment_expression "iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" (identifier "iVar6") (= "=") (call_expression "gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2)" (identifier "gtk_im_context_filter_keypress") (argument_list "(*(undefined8 *)(param_3 + 0x68),param_2)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x68)" (( "(") (binary_expression "param_3 + 0x68" (identifier "param_3") (+ "+") (number_literal "0x68")) () ")")))) (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";"))) (} "}")) (else_clause "else {\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" (else "else") (compound_statement "{\n    local_148 = '\x1b';\n    if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }\n    bVar3 = true;\n  }" ({ "{") (expression_statement "local_148 = '\x1b';" (assignment_expression "local_148 = '\x1b'" (identifier "local_148") (= "=") (char_literal "'\x1b'" (' "'") (escape_sequence "\x1b") (' "'"))) (; ";")) (if_statement "if (0x3a < param_2[7] - 0xff7fU) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" (if "if") (parenthesized_expression "(0x3a < param_2[7] - 0xff7fU)" (( "(") (binary_expression "0x3a < param_2[7] - 0xff7fU" (number_literal "0x3a") (< "<") (binary_expression "param_2[7] - 0xff7fU" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (- "-") (number_literal "0xff7fU"))) () ")")) (compound_statement "{\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" ({ "{") (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0014d16b;" (goto "goto") (statement_identifier "LAB_0014d16b") (; ";")) (} "}"))) (if_statement "if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" (if "if") (parenthesized_expression "((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0)" (( "(") (binary_expression "(0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0" (parenthesized_expression "(0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1)" (( "(") (binary_expression "0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1" (binary_expression "0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f)" (number_literal "0x7ffd801ffc04001U") (>> ">>") (parenthesized_expression "((ulong)(param_2[7] - 0xff7fU) & 0x3f)" (( "(") (binary_expression "(ulong)(param_2[7] - 0xff7fU) & 0x3f" (call_expression "(ulong)(param_2[7] - 0xff7fU)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_2[7] - 0xff7fU)" (( "(") (binary_expression "param_2[7] - 0xff7fU" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (- "-") (number_literal "0xff7fU")) () ")"))) (& "&") (number_literal "0x3f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar3 = true;\n      goto LAB_0014d16b;\n    }" ({ "{") (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0014d16b;" (goto "goto") (statement_identifier "LAB_0014d16b") (; ";")) (} "}"))) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (} "}")))) (expression_statement "uVar7 = 0xffffffffffffffff;" (assignment_expression "uVar7 = 0xffffffffffffffff" (identifier "uVar7") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar11 = *(char **)(param_2 + 10);" (assignment_expression "pcVar11 = *(char **)(param_2 + 10)" (identifier "pcVar11") (= "=") (pointer_expression "*(char **)(param_2 + 10)" (* "*") (cast_expression "(char **)(param_2 + 10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (do_statement "do {\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  } while (cVar1 != '\0');" (do "do") (compound_statement "{\n    if (uVar7 == 0) break;\n    uVar7 = uVar7 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n  }" ({ "{") (if_statement "if (uVar7 == 0) break;" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar7 = uVar7 - 1;" (assignment_expression "uVar7 = uVar7 - 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" (identifier "cVar1") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);" (assignment_expression "local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" (identifier "local_214") (= "=") (call_expression "FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" (identifier "FUN_00155c9b") (argument_list "(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f)" (( "(") (number_literal "0xffff") (, ",") (number_literal "0") (, ",") (pointer_expression "*(char **)(param_2 + 10)" (* "*") (cast_expression "(char **)(param_2 + 10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (, ",") (binary_expression "~uVar7 - 1" (unary_expression "~uVar7" (~ "~") (identifier "uVar7")) (- "-") (number_literal "1")) (, ",") (identifier "local_208") (, ",") (number_literal "0x1f") () ")")))) (; ";")) (expression_statement "local_210 = local_208;" (assignment_expression "local_210 = local_208" (identifier "local_210") (= "=") (identifier "local_208")) (; ";")) (expression_statement "iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);" (assignment_expression "iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" (identifier "iVar6") (= "=") (call_expression "FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" (identifier "FUN_001125f4") (argument_list "(&local_210,&local_214,local_147,0xfe,0x37,0,0,0)" (( "(") (pointer_expression "&local_210" (& "&") (identifier "local_210")) (, ",") (pointer_expression "&local_214" (& "&") (identifier "local_214")) (, ",") (identifier "local_147") (, ",") (number_literal "0xfe") (, ",") (number_literal "0x37") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "(&local_148)[iVar6 + 1] = '\0';" (assignment_expression "(&local_148)[iVar6 + 1] = '\0'" (subscript_expression "(&local_148)[iVar6 + 1]" (parenthesized_expression "(&local_148)" (( "(") (pointer_expression "&local_148" (& "&") (identifier "local_148")) () ")")) ([ "[") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }\n  else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" (if "if") (parenthesized_expression "(((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6))" (( "(") (binary_expression "((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)" (parenthesized_expression "((char)local_147[0] == '\0')" (( "(") (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)" (( "(") (comma_expression "iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6" (assignment_expression "iVar6 = FUN_001563f9(param_2[7])" (identifier "iVar6") (= "=") (call_expression "FUN_001563f9(param_2[7])" (identifier "FUN_001563f9") (argument_list "(param_2[7])" (( "(") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) () ")")))) (, ",") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6"))) () ")"))) () ")")) (compound_statement "{\n    local_208[0] = 0x1b;\n    local_224 = 1;\n    iVar16 = 2;\n    local_208[1] = iVar6;\n  }" ({ "{") (expression_statement "local_208[0] = 0x1b;" (assignment_expression "local_208[0] = 0x1b" (subscript_expression "local_208[0]" (identifier "local_208") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x1b")) (; ";")) (expression_statement "local_224 = 1;" (assignment_expression "local_224 = 1" (identifier "local_224") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_208[1] = iVar6;" (assignment_expression "local_208[1] = iVar6" (subscript_expression "local_208[1]" (identifier "local_208") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (} "}")) (else_clause "else {\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" (else "else") (compound_statement "{\n    local_49 = 0;\n    lVar8 = -1;\n    pcVar11 = &local_148;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');\n    iVar16 = ~(uint)lVar8 - 1;\n    local_224 = 0;\n  }" ({ "{") (expression_statement "local_49 = 0;" (assignment_expression "local_49 = 0" (identifier "local_49") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar8 = -1;" (assignment_expression "lVar8 = -1" (identifier "lVar8") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar11 = &local_148;" (assignment_expression "pcVar11 = &local_148" (identifier "pcVar11") (= "=") (pointer_expression "&local_148" (& "&") (identifier "local_148"))) (; ";")) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar1 != '\0');" (do "do") (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      cVar1 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar8 == 0) break;" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + -1" (identifier "lVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" (identifier "cVar1") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "iVar16 = ~(uint)lVar8 - 1;" (assignment_expression "iVar16 = ~(uint)lVar8 - 1" (identifier "iVar16") (= "=") (binary_expression "~(uint)lVar8 - 1" (unary_expression "~(uint)lVar8" (~ "~") (cast_expression "(uint)lVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar8"))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar2 = param_2[6];" (assignment_expression "uVar2 = param_2[6]" (identifier "uVar2") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }" (if "if") (parenthesized_expression "((*(uint *)(param_3 + 0x2300) & uVar2) == 0)" (( "(") (binary_expression "(*(uint *)(param_3 + 0x2300) & uVar2) == 0" (parenthesized_expression "(*(uint *)(param_3 + 0x2300) & uVar2)" (( "(") (binary_expression "*(uint *)(param_3 + 0x2300) & uVar2" (pointer_expression "*(uint *)(param_3 + 0x2300)" (* "*") (cast_expression "(uint *)(param_3 + 0x2300)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2300)" (( "(") (binary_expression "param_3 + 0x2300" (identifier "param_3") (+ "+") (number_literal "0x2300")) () ")")))) (& "&") (identifier "uVar2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = 1;\nLAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }\n    goto LAB_0014d51c;\n  }" ({ "{") (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" (identifier "iVar6") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0014d45d:\n    if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" (statement_identifier "LAB_0014d45d") (: ":") (if_statement "if ((char)local_147[0] == '\0') {\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }\n    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" (if "if") (parenthesized_expression "((char)local_147[0] == '\0')" (( "(") (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;\n      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;\n    }" ({ "{") (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;" (if "if") (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004)" (( "(") (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004)" (( "(") (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" (* "*") (cast_expression "(ulong *)(param_2 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xffffffff00000004")) () ")")) (== "==") (number_literal "0x6000000004")) () ")")) (goto_statement "goto LAB_0014d4ea;" (goto "goto") (statement_identifier "LAB_0014d4ea") (; ";"))) (if_statement "if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;" (if "if") (parenthesized_expression "(((uVar2 & 4) != 0) && (iVar16 == 2))" (( "(") (binary_expression "((uVar2 & 4) != 0) && (iVar16 == 2)" (parenthesized_expression "((uVar2 & 4) != 0)" (( "(") (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar16 == 2)" (( "(") (binary_expression "iVar16 == 2" (identifier "iVar16") (== "==") (number_literal "2")) () ")"))) () ")")) (goto_statement "goto LAB_0014d49c;" (goto "goto") (statement_identifier "LAB_0014d49c") (; ";"))) (} "}")) (else_clause "else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" (else "else") (if_statement "if (((uVar2 & 4) != 0) && (iVar16 == 2)) {\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" (if "if") (parenthesized_expression "(((uVar2 & 4) != 0) && (iVar16 == 2))" (( "(") (binary_expression "((uVar2 & 4) != 0) && (iVar16 == 2)" (parenthesized_expression "((uVar2 & 4) != 0)" (( "(") (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar16 == 2)" (( "(") (binary_expression "iVar16 == 2" (identifier "iVar16") (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);\n    }" ({ "{") (if_statement "if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;" (if "if") (parenthesized_expression "(4 < (byte)((char)local_147[0] - 0x33U))" (( "(") (binary_expression "4 < (byte)((char)local_147[0] - 0x33U)" (number_literal "4") (< "<") (call_expression "(byte)((char)local_147[0] - 0x33U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((char)local_147[0] - 0x33U)" (( "(") (binary_expression "(char)local_147[0] - 0x33U" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (- "-") (number_literal "0x33U")) () ")")))) () ")")) (goto_statement "goto LAB_0014d4a6;" (goto "goto") (statement_identifier "LAB_0014d4a6") (; ";"))) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,(char)local_147[0] + -0x18)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (binary_expression "(char)local_147[0] + -0x18" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (+ "+") (number_literal "-0x18")) () ")")))) (; ";")) (} "}")))))) (goto_statement "goto LAB_0014d51c;" (goto "goto") (statement_identifier "LAB_0014d51c") (; ";")) (} "}"))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar16 != 1) goto LAB_0014d45d;" (if "if") (parenthesized_expression "(iVar16 != 1)" (( "(") (binary_expression "iVar16 != 1" (identifier "iVar16") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0014d45d;" (goto "goto") (statement_identifier "LAB_0014d45d") (; ";"))) (if_statement "if ((char)local_147[0] == '\0') {\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }\n  else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" (if "if") (parenthesized_expression "((char)local_147[0] == '\0')" (( "(") (binary_expression "(char)local_147[0] == '\0'" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }\n    iVar6 = 0;\nLAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);\n    if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }\n    uVar7 = *(ulong *)(param_2 + 6);\n    local_224 = 0;\n    iVar16 = 2;\n  }" ({ "{") (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }" (if "if") (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004)" (( "(") (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000004)" (( "(") (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000004" (pointer_expression "*(ulong *)(param_2 + 6)" (* "*") (cast_expression "(ulong *)(param_2 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xffffffff00000004")) () ")")) (!= "!=") (number_literal "0x6000000004")) () ")")) (compound_statement "{\n      iVar16 = 0;\n      iVar6 = 0;\n      goto LAB_0014d51c;\n    }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0014d51c;" (goto "goto") (statement_identifier "LAB_0014d51c") (; ";")) (} "}"))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0014d4ea:\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);" (statement_identifier "LAB_0014d4ea") (: ":") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,0x1c)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,0x1c)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "0x1c") () ")")))) (; ";"))) (if_statement "if ((uVar2 & 4) != 0) {\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }" (if "if") (parenthesized_expression "((uVar2 & 4) != 0)" (( "(") (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_224 = 0;\nLAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }\n      goto LAB_0014d51c;\n    }" ({ "{") (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0014d49c:\nLAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" (statement_identifier "LAB_0014d49c") (: ":") (labeled_statement "LAB_0014d4a6:\n      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" (statement_identifier "LAB_0014d4a6") (: ":") (if_statement "if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" (if "if") (parenthesized_expression "(((char)local_147[0] == '2') || ((char)local_147[0] == ' '))" (( "(") (binary_expression "((char)local_147[0] == '2') || ((char)local_147[0] == ' ')" (parenthesized_expression "((char)local_147[0] == '2')" (( "(") (binary_expression "(char)local_147[0] == '2'" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'2'" (' "'") (character "2") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((char)local_147[0] == ' ')" (( "(") (binary_expression "(char)local_147[0] == ' '" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        local_147[0] = (uint)local_147[0]._1_3_ << 8;\n        iVar16 = 2;\n      }" ({ "{") (expression_statement "local_147[0] = (uint)local_147[0]._1_3_ << 8;" (assignment_expression "local_147[0] = (uint)local_147[0]._1_3_ << 8" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "(uint)local_147[0]._1_3_ << 8" (cast_expression "(uint)local_147[0]._1_3_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_"))) (<< "<<") (number_literal "8"))) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" (else "else") (if_statement "if ((char)local_147[0] == '8') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" (if "if") (parenthesized_expression "((char)local_147[0] == '8')" (( "(") (binary_expression "(char)local_147[0] == '8'" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'8'" (' "'") (character "8") (' "'"))) () ")")) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }" ({ "{") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,0x7f)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,0x7f)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "0x7f") () ")")))) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" (else "else") (if_statement "if ((char)local_147[0] == '/') {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }\n      else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" (if "if") (parenthesized_expression "((char)local_147[0] == '/')" (( "(") (binary_expression "(char)local_147[0] == '/'" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);\n        iVar16 = 2;\n      }" ({ "{") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,0x1f)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,0x1f)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "0x1f") () ")")))) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" (else "else") (compound_statement "{\n        iVar16 = 2;\n        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }\n      }" ({ "{") (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (if_statement "if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }" (if "if") (parenthesized_expression "((byte)((char)local_147[0] - 0x40U) < 0x3f)" (( "(") (binary_expression "(byte)((char)local_147[0] - 0x40U) < 0x3f" (call_expression "(byte)((char)local_147[0] - 0x40U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((char)local_147[0] - 0x40U)" (( "(") (binary_expression "(char)local_147[0] - 0x40U" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (- "-") (number_literal "0x40U")) () ")"))) (< "<") (number_literal "0x3f")) () ")")) (compound_statement "{\n          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;\n        }" ({ "{") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f" (call_expression "CONCAT31(local_147[0]._1_3_,(char)local_147[0])" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,(char)local_147[0])" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) () ")"))) (& "&") (number_literal "0xffffff1f"))) (; ";")) (} "}"))) (} "}")))))))))) (goto_statement "goto LAB_0014d51c;" (goto "goto") (statement_identifier "LAB_0014d51c") (; ";")) (} "}"))) (expression_statement "uVar7 = *(ulong *)(param_2 + 6);" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6)" (identifier "uVar7") (= "=") (pointer_expression "*(ulong *)(param_2 + 6)" (* "*") (cast_expression "(ulong *)(param_2 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" (else "else") (compound_statement "{\n    iVar16 = 0;\n    iVar6 = 0;\nLAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);\n    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }\n  }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0014d51c:\n    uVar7 = *(ulong *)(param_2 + 6);" (statement_identifier "LAB_0014d51c") (: ":") (expression_statement "uVar7 = *(ulong *)(param_2 + 6);" (assignment_expression "uVar7 = *(ulong *)(param_2 + 6)" (identifier "uVar7") (= "=") (pointer_expression "*(ulong *)(param_2 + 6)" (* "*") (cast_expression "(ulong *)(param_2 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")"))))) (; ";"))) (if_statement "if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }" (if "if") (parenthesized_expression "((uVar7 & 0xffffffff00000004) == 0xff6b00000004)" (( "(") (binary_expression "(uVar7 & 0xffffffff00000004) == 0xff6b00000004" (parenthesized_expression "(uVar7 & 0xffffffff00000004)" (( "(") (binary_expression "uVar7 & 0xffffffff00000004" (identifier "uVar7") (& "&") (number_literal "0xffffffff00000004")) () ")")) (== "==") (number_literal "0xff6b00000004")) () ")")) (compound_statement "{\n      if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }\n      goto LAB_0014cf81;\n    }" ({ "{") (if_statement "if (*(long *)(param_3 + 0xd90) != 0) {\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }" (if "if") (parenthesized_expression "(*(long *)(param_3 + 0xd90) != 0)" (( "(") (binary_expression "*(long *)(param_3 + 0xd90) != 0" (pointer_expression "*(long *)(param_3 + 0xd90)" (* "*") (cast_expression "(long *)(param_3 + 0xd90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd90)" (( "(") (binary_expression "param_3 + 0xd90" (identifier "param_3") (+ "+") (number_literal "0xd90")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);\n      }" ({ "{") (expression_statement "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);" (call_expression "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1)" (parenthesized_expression "(**(code **)(*(long *)(param_3 + 0xd90) + 0x30))" (( "(") (pointer_expression "**(code **)(*(long *)(param_3 + 0xd90) + 0x30)" (* "*") (pointer_expression "*(code **)(*(long *)(param_3 + 0xd90) + 0x30)" (* "*") (cast_expression "(code **)(*(long *)(param_3 + 0xd90) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0xd90) + 0x30)" (( "(") (binary_expression "*(long *)(param_3 + 0xd90) + 0x30" (pointer_expression "*(long *)(param_3 + 0xd90)" (* "*") (cast_expression "(long *)(param_3 + 0xd90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd90)" (( "(") (binary_expression "param_3 + 0xd90" (identifier "param_3") (+ "+") (number_literal "0xd90")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(*(undefined8 *)(param_3 + 0xd98),1)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0xd98)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0xd98)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd98)" (( "(") (binary_expression "param_3 + 0xd98" (identifier "param_3") (+ "+") (number_literal "0xd98")) () ")")))) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar14 = param_2[7];" (assignment_expression "iVar14 = param_2[7]" (identifier "iVar14") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (iVar14 == 0xff0d) {\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }\n  else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" (if "if") (parenthesized_expression "(iVar14 == 0xff0d)" (( "(") (binary_expression "iVar14 == 0xff0d" (identifier "iVar14") (== "==") (number_literal "0xff0d")) () ")")) (compound_statement "{\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);\n    bVar4 = true;\n    local_224 = 0;\n    iVar16 = 2;\nLAB_0014d670:\n    local_220 = 0x37;\n    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }\n  }" ({ "{") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0xd)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,0xd)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,0xd)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "0xd") () ")")))) (; ";")) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (labeled_statement "LAB_0014d670:\n    local_220 = 0x37;" (statement_identifier "LAB_0014d670") (: ":") (expression_statement "local_220 = 0x37;" (assignment_expression "local_220 = 0x37" (identifier "local_220") (= "=") (number_literal "0x37")) (; ";"))) (if_statement "if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }" (if "if") (parenthesized_expression "((uVar7 & 0xffffffff00000001) == 0xff0800000000)" (( "(") (binary_expression "(uVar7 & 0xffffffff00000001) == 0xff0800000000" (parenthesized_expression "(uVar7 & 0xffffffff00000001)" (( "(") (binary_expression "uVar7 & 0xffffffff00000001" (identifier "uVar7") (& "&") (number_literal "0xffffffff00000001")) () ")")) (== "==") (number_literal "0xff0800000000")) () ")")) (compound_statement "{\n      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);\n      local_220 = 0x37;\n      local_224 = 0;\n      bVar4 = true;\n      iVar16 = 2;\n    }" ({ "{") (expression_statement "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);" (assignment_expression "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" (identifier "iVar16") (= "=") (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" (identifier "FUN_0011558e") (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x3f)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x22d0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22d0)" (( "(") (binary_expression "param_3 + 0x22d0" (identifier "param_3") (+ "+") (number_literal "0x22d0")) () ")")))) (, ",") (number_literal "0x3f") () ")")))) (; ";")) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (binary_expression "(-(iVar16 == 0) & 0x89U) + 0x7f" (parenthesized_expression "(-(iVar16 == 0) & 0x89U)" (( "(") (binary_expression "-(iVar16 == 0) & 0x89U" (unary_expression "-(iVar16 == 0)" (- "-") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")"))) (& "&") (number_literal "0x89U")) () ")")) (+ "+") (number_literal "0x7f")) () ")")))) (; ";")) (expression_statement "local_220 = 0x37;" (assignment_expression "local_220 = 0x37" (identifier "local_220") (= "=") (number_literal "0x37")) (; ";")) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" (else "else") (compound_statement "{\n    if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }\n    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }\n    bVar4 = false;\n    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);\n    local_220 = 1;\n    local_224 = 0;\n    bVar4 = false;\n    iVar16 = 2;\n  }" ({ "{") (if_statement "if ((char)local_147[0] != '\0') {\n      bVar4 = false;\n      goto LAB_0014d670;\n    }" (if "if") (parenthesized_expression "((char)local_147[0] != '\0')" (( "(") (binary_expression "(char)local_147[0] != '\0'" (cast_expression "(char)local_147[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      bVar4 = false;\n      goto LAB_0014d670;\n    }" ({ "{") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_0014d670;" (goto "goto") (statement_identifier "LAB_0014d670") (; ";")) (} "}"))) (if_statement "if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {\n      iVar16 = 2;\n      local_224 = 0;\n    }" (if "if") (parenthesized_expression "((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4))" (( "(") (binary_expression "(((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)" (parenthesized_expression "(((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32))" (( "(") (binary_expression "((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)" (parenthesized_expression "((iVar14 - 0x20U & 0xffffffdf) == 0)" (( "(") (binary_expression "(iVar14 - 0x20U & 0xffffffdf) == 0" (parenthesized_expression "(iVar14 - 0x20U & 0xffffffdf)" (( "(") (binary_expression "iVar14 - 0x20U & 0xffffffdf" (binary_expression "iVar14 - 0x20U" (identifier "iVar14") (- "-") (number_literal "0x20U")) (& "&") (number_literal "0xffffffdf")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar14 == 0x32)" (( "(") (binary_expression "iVar14 == 0x32" (identifier "iVar14") (== "==") (number_literal "0x32")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar2 & 5) == 4)" (( "(") (binary_expression "(uVar2 & 5) == 4" (parenthesized_expression "(uVar2 & 5)" (( "(") (binary_expression "uVar2 & 5" (identifier "uVar2") (& "&") (number_literal "5")) () ")")) (== "==") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n      iVar16 = 2;\n      local_224 = 0;\n    }" ({ "{") (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (if_statement "if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;" (if "if") (parenthesized_expression "((uVar7 & 0xffffffff00000005) != 0x2000000005)" (( "(") (binary_expression "(uVar7 & 0xffffffff00000005) != 0x2000000005" (parenthesized_expression "(uVar7 & 0xffffffff00000005)" (( "(") (binary_expression "uVar7 & 0xffffffff00000005" (identifier "uVar7") (& "&") (number_literal "0xffffffff00000005")) () ")")) (!= "!=") (number_literal "0x2000000005")) () ")")) (goto_statement "goto LAB_0014d670;" (goto "goto") (statement_identifier "LAB_0014d670") (; ";"))) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,0xa0)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,0xa0)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "0xa0") () ")")))) (; ";")) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" (identifier "local_220") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}")))) (if_statement "if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }" (if "if") (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001)" (( "(") (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001)" (( "(") (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" (* "*") (cast_expression "(ulong *)(param_2 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xffffffff00000001")) () ")")) (== "==") (number_literal "0xff0800000001")) () ")")) (compound_statement "{\n    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);\n    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);\n    local_224 = 0;\n    bVar4 = true;\n    iVar16 = 2;\n  }" ({ "{") (expression_statement "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);" (assignment_expression "iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" (identifier "iVar16") (= "=") (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f)" (identifier "FUN_0011558e") (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x3f)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x22d0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22d0)" (( "(") (binary_expression "param_3 + 0x22d0" (identifier "param_3") (+ "+") (number_literal "0x22d0")) () ")")))) (, ",") (number_literal "0x3f") () ")")))) (; ";")) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (binary_expression "(-(iVar16 == 0) & 0x77U) + 8" (parenthesized_expression "(-(iVar16 == 0) & 0x77U)" (( "(") (binary_expression "-(iVar16 == 0) & 0x77U" (unary_expression "-(iVar16 == 0)" (- "-") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")"))) (& "&") (number_literal "0x77U")) () ")")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "iVar14 = param_2[7];" (assignment_expression "iVar14 = param_2[7]" (identifier "iVar14") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }" (if "if") (parenthesized_expression "((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001))" (( "(") (binary_expression "(iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)" (parenthesized_expression "(iVar14 != 0xfe20)" (( "(") (binary_expression "iVar14 != 0xfe20" (identifier "iVar14") (!= "!=") (number_literal "0xfe20")) () ")")) (&& "&&") (parenthesized_expression "((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)" (( "(") (binary_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001" (parenthesized_expression "(*(ulong *)(param_2 + 6) & 0xffffffff00000001)" (( "(") (binary_expression "*(ulong *)(param_2 + 6) & 0xffffffff00000001" (pointer_expression "*(ulong *)(param_2 + 6)" (* "*") (cast_expression "(ulong *)(param_2 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 6)" (( "(") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xffffffff00000001")) () ")")) (!= "!=") (number_literal "0xff0900000001")) () ")"))) () ")")) (compound_statement "{\n    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;\n    local_147[0] = CONCAT31(local_147[0]._1_3_,9);\n    iVar16 = 2;\n    goto switchD_0014d8c5_caseD_ff80;\n  }" ({ "{") (if_statement "if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;" (if "if") (parenthesized_expression "((1 < iVar16) || (iVar14 != 0xff09))" (( "(") (binary_expression "(1 < iVar16) || (iVar14 != 0xff09)" (parenthesized_expression "(1 < iVar16)" (( "(") (binary_expression "1 < iVar16" (number_literal "1") (< "<") (identifier "iVar16")) () ")")) (|| "||") (parenthesized_expression "(iVar14 != 0xff09)" (( "(") (binary_expression "iVar14 != 0xff09" (identifier "iVar14") (!= "!=") (number_literal "0xff09")) () ")"))) () ")")) (goto_statement "goto LAB_0014d7d9;" (goto "goto") (statement_identifier "LAB_0014d7d9") (; ";"))) (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,9);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,9)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,9)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,9)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "9") () ")")))) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto switchD_0014d8c5_caseD_ff80;" (goto "goto") (statement_identifier "switchD_0014d8c5_caseD_ff80") (; ";")) (} "}"))) (expression_statement "local_147[0] = 0x5a5b1b;" (assignment_expression "local_147[0] = 0x5a5b1b" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x5a5b1b")) (; ";")) (expression_statement "local_224 = 0;" (assignment_expression "local_224 = 0" (identifier "local_224") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" (identifier "iVar16") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_0014d7d9:\n  if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" (statement_identifier "LAB_0014d7d9") (: ":") (if_statement "if (iVar5 != 0) {\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }\n    if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }\n    iVar5 = 2 - iVar6;\n    local_228 = 0;\n    iVar16 = 2;\n    goto LAB_0014e163;\n  }" ({ "{") (switch_statement "switch(iVar14) {\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }" (switch "switch") (parenthesized_expression "(iVar14)" (( "(") (identifier "iVar14") () ")")) (compound_statement "{\n    case 0xff95:\n    case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;\n    case 0xff96:\n    case 0xffb4:\n      pcVar11 = "hH\b";\n      break;\n    case 0xff97:\n    case 0xffb8:\n      pcVar11 = "kK\v";\n      break;\n    case 0xff98:\n    case 0xffb6:\n      pcVar11 = "lL\f";\n      break;\n    case 0xff99:\n    case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      pcVar11 = "...";\n      break;\n    default:\n      goto switchD_0014d802_caseD_ff9e;\n    }" ({ "{") (case_statement "case 0xff95:" (case "case") (number_literal "0xff95") (: ":")) (case_statement "case 0xffb7:\n      pcVar11 = "yY\x19";\n      break;" (case "case") (number_literal "0xffb7") (: ":") (expression_statement "pcVar11 = "yY\x19";" (assignment_expression "pcVar11 = "yY\x19"" (identifier "pcVar11") (= "=") (string_literal ""yY\x19"" (" """) (string_content "yY") (escape_sequence "\x19") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff96:" (case "case") (number_literal "0xff96") (: ":")) (case_statement "case 0xffb4:\n      pcVar11 = "hH\b";\n      break;" (case "case") (number_literal "0xffb4") (: ":") (expression_statement "pcVar11 = "hH\b";" (assignment_expression "pcVar11 = "hH\b"" (identifier "pcVar11") (= "=") (string_literal ""hH\b"" (" """) (string_content "hH") (escape_sequence "\b") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff97:" (case "case") (number_literal "0xff97") (: ":")) (case_statement "case 0xffb8:\n      pcVar11 = "kK\v";\n      break;" (case "case") (number_literal "0xffb8") (: ":") (expression_statement "pcVar11 = "kK\v";" (assignment_expression "pcVar11 = "kK\v"" (identifier "pcVar11") (= "=") (string_literal ""kK\v"" (" """) (string_content "kK") (escape_sequence "\v") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff98:" (case "case") (number_literal "0xff98") (: ":")) (case_statement "case 0xffb6:\n      pcVar11 = "lL\f";\n      break;" (case "case") (number_literal "0xffb6") (: ":") (expression_statement "pcVar11 = "lL\f";" (assignment_expression "pcVar11 = "lL\f"" (identifier "pcVar11") (= "=") (string_literal ""lL\f"" (" """) (string_content "lL") (escape_sequence "\f") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff99:" (case "case") (number_literal "0xff99") (: ":")) (case_statement "case 0xffb2:\n      pcVar11 = "jJ\n";\n      break;" (case "case") (number_literal "0xffb2") (: ":") (expression_statement "pcVar11 = "jJ\n";" (assignment_expression "pcVar11 = "jJ\n"" (identifier "pcVar11") (= "=") (string_literal ""jJ\n"" (" """) (string_content "jJ") (escape_sequence "\n") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9a:" (case "case") (number_literal "0xff9a") (: ":")) (case_statement "case 0xffb9:\n      pcVar11 = "uU\x15";\n      break;" (case "case") (number_literal "0xffb9") (: ":") (expression_statement "pcVar11 = "uU\x15";" (assignment_expression "pcVar11 = "uU\x15"" (identifier "pcVar11") (= "=") (string_literal ""uU\x15"" (" """) (string_content "uU") (escape_sequence "\x15") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9b:" (case "case") (number_literal "0xff9b") (: ":")) (case_statement "case 0xffb3:\n      pcVar11 = "nN\x0e";\n      break;" (case "case") (number_literal "0xffb3") (: ":") (expression_statement "pcVar11 = "nN\x0e";" (assignment_expression "pcVar11 = "nN\x0e"" (identifier "pcVar11") (= "=") (string_literal ""nN\x0e"" (" """) (string_content "nN") (escape_sequence "\x0e") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9c:" (case "case") (number_literal "0xff9c") (: ":")) (case_statement "case 0xffb1:\n      pcVar11 = "bB\x02";\n      break;" (case "case") (number_literal "0xffb1") (: ":") (expression_statement "pcVar11 = "bB\x02";" (assignment_expression "pcVar11 = "bB\x02"" (identifier "pcVar11") (= "=") (string_literal ""bB\x02"" (" """) (string_content "bB") (escape_sequence "\x02") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9d:" (case "case") (number_literal "0xff9d") (: ":")) (case_statement "case 0xffb5:\n      pcVar11 = "...";\n      break;" (case "case") (number_literal "0xffb5") (: ":") (expression_statement "pcVar11 = "...";" (assignment_expression "pcVar11 = "..."" (identifier "pcVar11") (= "=") (string_literal ""..."" (" """) (string_content "...") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n      goto switchD_0014d802_caseD_ff9e;" (default "default") (: ":") (goto_statement "goto switchD_0014d802_caseD_ff9e;" (goto "goto") (statement_identifier "switchD_0014d802_caseD_ff9e") (; ";"))) (} "}"))) (if_statement "if ((param_2[6] & 4U) == 0) {\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }\n    else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" (if "if") (parenthesized_expression "((param_2[6] & 4U) == 0)" (( "(") (binary_expression "(param_2[6] & 4U) == 0" (parenthesized_expression "(param_2[6] & 4U)" (( "(") (binary_expression "param_2[6] & 4U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "4U")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }\n    }" ({ "{") (if_statement "if ((param_2[6] & 1U) == 0) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }\n      else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" (if "if") (parenthesized_expression "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);\n      }" ({ "{") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,*pcVar11)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,*pcVar11)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" (else "else") (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);\n      }" ({ "{") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1])" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,pcVar11[1])" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,pcVar11[1])" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (subscript_expression "pcVar11[1]" (identifier "pcVar11") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" (else "else") (compound_statement "{\n      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);\n    }" ({ "{") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2])" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,pcVar11[2])" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,pcVar11[2])" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (subscript_expression "pcVar11[2]" (identifier "pcVar11") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (} "}")))) (expression_statement "iVar5 = 2 - iVar6;" (assignment_expression "iVar5 = 2 - iVar6" (identifier "iVar5") (= "=") (binary_expression "2 - iVar6" (number_literal "2") (- "-") (identifier "iVar6"))) (; ";")) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" (identifier "local_228") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0014e163;" (goto "goto") (statement_identifier "LAB_0014e163") (; ";")) (} "}")))) (labeled_statement "switchD_0014d802_caseD_ff9e:\n  if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" (statement_identifier "switchD_0014d802_caseD_ff9e") (: ":") (if_statement "if (bVar3) {\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n    switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }\n    goto LAB_0014d90a;\n  }" ({ "{") (switch_statement "switch(iVar14) {\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" (switch "switch") (parenthesized_expression "(iVar14)" (( "(") (identifier "iVar14") () ")")) (compound_statement "{\n    case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;\n    default:\n      goto switchD_0014d8c5_caseD_ff80;\n    case 0xff8d:\n      iVar5 = 0x4d;\n      break;\n    case 0xff95:\n    case 0xffb7:\n      iVar5 = 0x77;\n      break;\n    case 0xff96:\n    case 0xffb4:\n      iVar5 = 0x74;\n      break;\n    case 0xff97:\n    case 0xffb8:\n      iVar5 = 0x78;\n      break;\n    case 0xff98:\n    case 0xffb6:\n      iVar5 = 0x76;\n      break;\n    case 0xff99:\n    case 0xffb2:\n      iVar5 = 0x72;\n      break;\n    case 0xff9a:\n    case 0xffb9:\n      iVar5 = 0x79;\n      break;\n    case 0xff9b:\n    case 0xffb3:\n      iVar5 = 0x73;\n      break;\n    case 0xff9c:\n    case 0xffb1:\n      iVar5 = 0x71;\n      break;\n    case 0xff9d:\n    case 0xffb5:\n      iVar5 = 0x75;\n      break;\n    case 0xff9e:\n    case 0xffb0:\n      iVar5 = 0x70;\n      break;\n    case 0xff9f:\n    case 0xffae:\n      iVar5 = 0x6e;\n      break;\n    case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;\n    case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;\n    case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;\n    case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" ({ "{") (case_statement "case 0xff7f:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }\n      iVar5 = 0x50;\n      goto LAB_0014d8e1;" (case "case") (number_literal "0xff7f") (: ":") (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }" (if "if") (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" (( "(") (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (* "*") (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" (* "*") (cast_expression "(long *)(param_3 + 0xda0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (+ "+") (number_literal "0x1b0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = 0x50;\n        goto LAB_0014d978;\n      }" ({ "{") (expression_statement "iVar5 = 0x50;" (assignment_expression "iVar5 = 0x50" (identifier "iVar5") (= "=") (number_literal "0x50")) (; ";")) (goto_statement "goto LAB_0014d978;" (goto "goto") (statement_identifier "LAB_0014d978") (; ";")) (} "}"))) (expression_statement "iVar5 = 0x50;" (assignment_expression "iVar5 = 0x50" (identifier "iVar5") (= "=") (number_literal "0x50")) (; ";")) (goto_statement "goto LAB_0014d8e1;" (goto "goto") (statement_identifier "LAB_0014d8e1") (; ";"))) (case_statement "default:\n      goto switchD_0014d8c5_caseD_ff80;" (default "default") (: ":") (goto_statement "goto switchD_0014d8c5_caseD_ff80;" (goto "goto") (statement_identifier "switchD_0014d8c5_caseD_ff80") (; ";"))) (case_statement "case 0xff8d:\n      iVar5 = 0x4d;\n      break;" (case "case") (number_literal "0xff8d") (: ":") (expression_statement "iVar5 = 0x4d;" (assignment_expression "iVar5 = 0x4d" (identifier "iVar5") (= "=") (number_literal "0x4d")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff95:" (case "case") (number_literal "0xff95") (: ":")) (case_statement "case 0xffb7:\n      iVar5 = 0x77;\n      break;" (case "case") (number_literal "0xffb7") (: ":") (expression_statement "iVar5 = 0x77;" (assignment_expression "iVar5 = 0x77" (identifier "iVar5") (= "=") (number_literal "0x77")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff96:" (case "case") (number_literal "0xff96") (: ":")) (case_statement "case 0xffb4:\n      iVar5 = 0x74;\n      break;" (case "case") (number_literal "0xffb4") (: ":") (expression_statement "iVar5 = 0x74;" (assignment_expression "iVar5 = 0x74" (identifier "iVar5") (= "=") (number_literal "0x74")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff97:" (case "case") (number_literal "0xff97") (: ":")) (case_statement "case 0xffb8:\n      iVar5 = 0x78;\n      break;" (case "case") (number_literal "0xffb8") (: ":") (expression_statement "iVar5 = 0x78;" (assignment_expression "iVar5 = 0x78" (identifier "iVar5") (= "=") (number_literal "0x78")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff98:" (case "case") (number_literal "0xff98") (: ":")) (case_statement "case 0xffb6:\n      iVar5 = 0x76;\n      break;" (case "case") (number_literal "0xffb6") (: ":") (expression_statement "iVar5 = 0x76;" (assignment_expression "iVar5 = 0x76" (identifier "iVar5") (= "=") (number_literal "0x76")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff99:" (case "case") (number_literal "0xff99") (: ":")) (case_statement "case 0xffb2:\n      iVar5 = 0x72;\n      break;" (case "case") (number_literal "0xffb2") (: ":") (expression_statement "iVar5 = 0x72;" (assignment_expression "iVar5 = 0x72" (identifier "iVar5") (= "=") (number_literal "0x72")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9a:" (case "case") (number_literal "0xff9a") (: ":")) (case_statement "case 0xffb9:\n      iVar5 = 0x79;\n      break;" (case "case") (number_literal "0xffb9") (: ":") (expression_statement "iVar5 = 0x79;" (assignment_expression "iVar5 = 0x79" (identifier "iVar5") (= "=") (number_literal "0x79")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9b:" (case "case") (number_literal "0xff9b") (: ":")) (case_statement "case 0xffb3:\n      iVar5 = 0x73;\n      break;" (case "case") (number_literal "0xffb3") (: ":") (expression_statement "iVar5 = 0x73;" (assignment_expression "iVar5 = 0x73" (identifier "iVar5") (= "=") (number_literal "0x73")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9c:" (case "case") (number_literal "0xff9c") (: ":")) (case_statement "case 0xffb1:\n      iVar5 = 0x71;\n      break;" (case "case") (number_literal "0xffb1") (: ":") (expression_statement "iVar5 = 0x71;" (assignment_expression "iVar5 = 0x71" (identifier "iVar5") (= "=") (number_literal "0x71")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9d:" (case "case") (number_literal "0xff9d") (: ":")) (case_statement "case 0xffb5:\n      iVar5 = 0x75;\n      break;" (case "case") (number_literal "0xffb5") (: ":") (expression_statement "iVar5 = 0x75;" (assignment_expression "iVar5 = 0x75" (identifier "iVar5") (= "=") (number_literal "0x75")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9e:" (case "case") (number_literal "0xff9e") (: ":")) (case_statement "case 0xffb0:\n      iVar5 = 0x70;\n      break;" (case "case") (number_literal "0xffb0") (: ":") (expression_statement "iVar5 = 0x70;" (assignment_expression "iVar5 = 0x70" (identifier "iVar5") (= "=") (number_literal "0x70")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff9f:" (case "case") (number_literal "0xff9f") (: ":")) (case_statement "case 0xffae:\n      iVar5 = 0x6e;\n      break;" (case "case") (number_literal "0xffae") (: ":") (expression_statement "iVar5 = 0x6e;" (assignment_expression "iVar5 = 0x6e" (identifier "iVar5") (= "=") (number_literal "0x6e")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffaa:\n      iVar5 = 0x52;\n      goto LAB_0014d8cd;" (case "case") (number_literal "0xffaa") (: ":") (expression_statement "iVar5 = 0x52;" (assignment_expression "iVar5 = 0x52" (identifier "iVar5") (= "=") (number_literal "0x52")) (; ";")) (goto_statement "goto LAB_0014d8cd;" (goto "goto") (statement_identifier "LAB_0014d8cd") (; ";"))) (case_statement "case 0xffab:\n      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);\n      if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }\n      break;" (case "case") (number_literal "0xffab") (: ":") (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" (identifier "iVar5") (= "=") (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" (identifier "FUN_0011558e") (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x41)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x22d0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22d0)" (( "(") (binary_expression "param_3 + 0x22d0" (identifier "param_3") (+ "+") (number_literal "0x22d0")) () ")")))) (, ",") (number_literal "0x41") () ")")))) (; ";")) (if_statement "if (iVar5 == 2) {\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }\n      else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" (if "if") (parenthesized_expression "(iVar5 == 2)" (( "(") (binary_expression "iVar5 == 2" (identifier "iVar5") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);\n      }" ({ "{") (expression_statement "iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);" (assignment_expression "iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0)" (identifier "iVar5") (= "=") (binary_expression "0x6c - (uint)((param_2[6] & 1U) == 0)" (number_literal "0x6c") (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" (else "else") (compound_statement "{\n        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);\n      }" ({ "{") (expression_statement "iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);" (assignment_expression "iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0)" (identifier "iVar5") (= "=") (binary_expression "0x6d - (uint)((param_2[6] & 1U) == 0)" (number_literal "0x6d") (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")"))))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffad:\n      iVar5 = 0x53;\n      goto LAB_0014d8cd;" (case "case") (number_literal "0xffad") (: ":") (expression_statement "iVar5 = 0x53;" (assignment_expression "iVar5 = 0x53" (identifier "iVar5") (= "=") (number_literal "0x53")) (; ";")) (goto_statement "goto LAB_0014d8cd;" (goto "goto") (statement_identifier "LAB_0014d8cd") (; ";"))) (case_statement "case 0xffaf:\n      iVar5 = 0x51;\nLAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;\nLAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);\n      iVar16 = 3;\n      goto LAB_0014d90a;" (case "case") (number_literal "0xffaf") (: ":") (expression_statement "iVar5 = 0x51;" (assignment_expression "iVar5 = 0x51" (identifier "iVar5") (= "=") (number_literal "0x51")) (; ";")) (labeled_statement "LAB_0014d8cd:\n      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;" (statement_identifier "LAB_0014d8cd") (: ":") (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;" (if "if") (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" (( "(") (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (* "*") (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" (* "*") (cast_expression "(long *)(param_3 + 0xda0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (+ "+") (number_literal "0x1b0")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0014d978;" (goto "goto") (statement_identifier "LAB_0014d978") (; ";")))) (labeled_statement "LAB_0014d8e1:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);" (statement_identifier "LAB_0014d8e1") (: ":") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f385,iVar5)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f385" (& "&") (identifier "DAT_0017f385")) (, ",") (identifier "iVar5") () ")"))) (; ";"))) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" (identifier "iVar16") (= "=") (number_literal "3")) (; ";")) (goto_statement "goto LAB_0014d90a;" (goto "goto") (statement_identifier "LAB_0014d90a") (; ";"))) (} "}"))) (if_statement "if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }\n    else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" (if "if") (parenthesized_expression "(*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0)" (( "(") (binary_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0" (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (* "*") (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" (* "*") (cast_expression "(long *)(param_3 + 0xda0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (+ "+") (number_literal "0x1b0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);\n      iVar16 = 4;\n    }" ({ "{") (labeled_statement "LAB_0014d978:\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);" (statement_identifier "LAB_0014d978") (: ":") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f389,iVar5)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f389" (& "&") (identifier "DAT_0017f389")) (, ",") (identifier "iVar5") () ")"))) (; ";"))) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" (identifier "iVar16") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" (else "else") (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);\n      iVar16 = 4;\n    }" ({ "{") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_001827ed,iVar5)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_001827ed" (& "&") (identifier "DAT_001827ed")) (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" (identifier "iVar16") (= "=") (number_literal "4")) (; ";")) (} "}")))) (goto_statement "goto LAB_0014d90a;" (goto "goto") (statement_identifier "LAB_0014d90a") (; ";")) (} "}")))) (labeled_statement "switchD_0014d8c5_caseD_ff80:\n  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" (statement_identifier "switchD_0014d8c5_caseD_ff80") (: ":") (expression_statement "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" (identifier "iVar5") (= "=") (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41)" (identifier "FUN_0011558e") (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x41)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x22d0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22d0)" (( "(") (binary_expression "param_3 + 0x22d0" (identifier "param_3") (+ "+") (number_literal "0x22d0")) () ")")))) (, ",") (number_literal "0x41") () ")")))) (; ";"))) (expression_statement "uVar2 = param_2[7];" (assignment_expression "uVar2 = param_2[7]" (identifier "uVar2") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (switch_statement "switch(uVar2) {\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }" (switch "switch") (parenthesized_expression "(uVar2)" (( "(") (identifier "uVar2") () ")")) (compound_statement "{\n  case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;\n  case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;\n  case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;\n  case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;\n  case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;\n  case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;\n  case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;\n  case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;\n  case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;\n  case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;\n  case 0xffc8:\n    local_228 = 0x17;\n    break;\n  case 0xffc9:\n    local_228 = 0x18;\n    break;\n  case 0xffca:\n    local_228 = 0x19;\n    break;\n  case 0xffcb:\n    local_228 = 0x1a;\n    break;\n  case 0xffcc:\n    local_228 = 0x1c;\n    break;\n  case 0xffcd:\n    local_228 = 0x1d;\n    break;\n  case 0xffce:\n    local_228 = 0x1f;\n    break;\n  case 0xffcf:\n    local_228 = 0x20;\n    break;\n  case 0xffd0:\n    local_228 = 0x21;\n    break;\n  case 0xffd1:\n    local_228 = 0x22;\n    break;\n  default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;\n  }" ({ "{") (case_statement "case 0xffbe:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;\n    goto LAB_0014da2f;" (case "case") (number_literal "0xffbe") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff4")) () ")")) (+ "+") (number_literal "0x17"))) (; ";")) (goto_statement "goto LAB_0014da2f;" (goto "goto") (statement_identifier "LAB_0014da2f") (; ";"))) (case_statement "case 0xffbf:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;\n    goto LAB_0014da2f;" (case "case") (number_literal "0xffbf") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff4")) () ")")) (+ "+") (number_literal "0x18"))) (; ";")) (goto_statement "goto LAB_0014da2f;" (goto "goto") (statement_identifier "LAB_0014da2f") (; ";"))) (case_statement "case 0xffc0:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;\n    goto LAB_0014da2f;" (case "case") (number_literal "0xffc0") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff4")) () ")")) (+ "+") (number_literal "0x19"))) (; ";")) (goto_statement "goto LAB_0014da2f;" (goto "goto") (statement_identifier "LAB_0014da2f") (; ";"))) (case_statement "case 0xffc1:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;\n    goto LAB_0014da2f;" (case "case") (number_literal "0xffc1") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff4")) () ")")) (+ "+") (number_literal "0x1a"))) (; ";")) (goto_statement "goto LAB_0014da2f;" (goto "goto") (statement_identifier "LAB_0014da2f") (; ";"))) (case_statement "case 0xffc2:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;\n    goto LAB_0014da2f;" (case "case") (number_literal "0xffc2") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff3")) () ")")) (+ "+") (number_literal "0x1c"))) (; ";")) (goto_statement "goto LAB_0014da2f;" (goto "goto") (statement_identifier "LAB_0014da2f") (; ";"))) (case_statement "case 0xffc3:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;\n    goto LAB_0014da2f;" (case "case") (number_literal "0xffc3") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff4")) () ")")) (+ "+") (number_literal "0x1d"))) (; ";")) (goto_statement "goto LAB_0014da2f;" (goto "goto") (statement_identifier "LAB_0014da2f") (; ";"))) (case_statement "case 0xffc4:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;\n    goto LAB_0014da2f;" (case "case") (number_literal "0xffc4") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff3")) () ")")) (+ "+") (number_literal "0x1f"))) (; ";")) (goto_statement "goto LAB_0014da2f;" (goto "goto") (statement_identifier "LAB_0014da2f") (; ";"))) (case_statement "case 0xffc5:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;\nLAB_0014da2f:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 != 0) goto LAB_0014e24b;\nLAB_0014dbca:\n    uVar15 = 0;\nLAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;\n    local_228 = (int)(char)(&DAT_00182a60)[local_228];\n    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);\n    if (iVar14 != 0) goto LAB_0014dce7;\n    bVar3 = 10 < local_228;\n    goto LAB_0014dd14;" (case "case") (number_literal "0xffc5") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff3")) () ")")) (+ "+") (number_literal "0x20"))) (; ";")) (labeled_statement "LAB_0014da2f:\n    uVar13 = param_2[6];" (statement_identifier "LAB_0014da2f") (: ":") (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" (identifier "uVar13") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";"))) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" (identifier "uVar15") (= "=") (binary_expression "uVar13 & 4" (identifier "uVar13") (& "&") (number_literal "4"))) (; ";")) (if_statement "if (uVar15 != 0) goto LAB_0014e24b;" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0014e24b;" (goto "goto") (statement_identifier "LAB_0014e24b") (; ";"))) (labeled_statement "LAB_0014dbca:\n    uVar15 = 0;" (statement_identifier "LAB_0014dbca") (: ":") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0014dbfe:\n    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;" (statement_identifier "LAB_0014dbfe") (: ":") (if_statement "if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;" (if "if") (parenthesized_expression "((iVar5 != 3) || (6 < local_228))" (( "(") (binary_expression "(iVar5 != 3) || (6 < local_228)" (parenthesized_expression "(iVar5 != 3)" (( "(") (binary_expression "iVar5 != 3" (identifier "iVar5") (!= "!=") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(6 < local_228)" (( "(") (binary_expression "6 < local_228" (number_literal "6") (< "<") (identifier "local_228")) () ")"))) () ")")) (goto_statement "goto LAB_0014e24b;" (goto "goto") (statement_identifier "LAB_0014e24b") (; ";")))) (expression_statement "local_228 = (int)(char)(&DAT_00182a60)[local_228];" (assignment_expression "local_228 = (int)(char)(&DAT_00182a60)[local_228]" (identifier "local_228") (= "=") (cast_expression "(int)(char)(&DAT_00182a60)[local_228]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)(&DAT_00182a60)[local_228]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "(&DAT_00182a60)[local_228]" (parenthesized_expression "(&DAT_00182a60)" (( "(") (pointer_expression "&DAT_00182a60" (& "&") (identifier "DAT_00182a60")) () ")")) ([ "[") (identifier "local_228") (] "]"))))) (; ";")) (expression_statement "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" (assignment_expression "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (* "*") (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" (* "*") (cast_expression "(long *)(param_3 + 0xda0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (+ "+") (number_literal "0x1b0")) () ")"))))) (; ";")) (if_statement "if (iVar14 != 0) goto LAB_0014dce7;" (if "if") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0014dce7;" (goto "goto") (statement_identifier "LAB_0014dce7") (; ";"))) (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" (identifier "bVar3") (= "=") (binary_expression "10 < local_228" (number_literal "10") (< "<") (identifier "local_228"))) (; ";")) (goto_statement "goto LAB_0014dd14;" (goto "goto") (statement_identifier "LAB_0014dd14") (; ";"))) (case_statement "case 0xffc6:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;\n    break;" (case "case") (number_literal "0xffc6") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff3")) () ")")) (+ "+") (number_literal "0x21"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc7:\n    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;\n    break;" (case "case") (number_literal "0xffc7") (: ":") (expression_statement "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;" (assignment_expression "local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22" (identifier "local_228") (= "=") (binary_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22" (parenthesized_expression "(-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3)" (( "(") (binary_expression "-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3" (unary_expression "-(uint)((param_2[6] & 1U) == 0)" (- "-") (call_expression "(uint)((param_2[6] & 1U) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2[6] & 1U) == 0)" (( "(") (binary_expression "(param_2[6] & 1U) == 0" (parenthesized_expression "(param_2[6] & 1U)" (( "(") (binary_expression "param_2[6] & 1U" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff3")) () ")")) (+ "+") (number_literal "0x22"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc8:\n    local_228 = 0x17;\n    break;" (case "case") (number_literal "0xffc8") (: ":") (expression_statement "local_228 = 0x17;" (assignment_expression "local_228 = 0x17" (identifier "local_228") (= "=") (number_literal "0x17")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc9:\n    local_228 = 0x18;\n    break;" (case "case") (number_literal "0xffc9") (: ":") (expression_statement "local_228 = 0x18;" (assignment_expression "local_228 = 0x18" (identifier "local_228") (= "=") (number_literal "0x18")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffca:\n    local_228 = 0x19;\n    break;" (case "case") (number_literal "0xffca") (: ":") (expression_statement "local_228 = 0x19;" (assignment_expression "local_228 = 0x19" (identifier "local_228") (= "=") (number_literal "0x19")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffcb:\n    local_228 = 0x1a;\n    break;" (case "case") (number_literal "0xffcb") (: ":") (expression_statement "local_228 = 0x1a;" (assignment_expression "local_228 = 0x1a" (identifier "local_228") (= "=") (number_literal "0x1a")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffcc:\n    local_228 = 0x1c;\n    break;" (case "case") (number_literal "0xffcc") (: ":") (expression_statement "local_228 = 0x1c;" (assignment_expression "local_228 = 0x1c" (identifier "local_228") (= "=") (number_literal "0x1c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffcd:\n    local_228 = 0x1d;\n    break;" (case "case") (number_literal "0xffcd") (: ":") (expression_statement "local_228 = 0x1d;" (assignment_expression "local_228 = 0x1d" (identifier "local_228") (= "=") (number_literal "0x1d")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffce:\n    local_228 = 0x1f;\n    break;" (case "case") (number_literal "0xffce") (: ":") (expression_statement "local_228 = 0x1f;" (assignment_expression "local_228 = 0x1f" (identifier "local_228") (= "=") (number_literal "0x1f")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffcf:\n    local_228 = 0x20;\n    break;" (case "case") (number_literal "0xffcf") (: ":") (expression_statement "local_228 = 0x20;" (assignment_expression "local_228 = 0x20" (identifier "local_228") (= "=") (number_literal "0x20")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffd0:\n    local_228 = 0x21;\n    break;" (case "case") (number_literal "0xffd0") (: ":") (expression_statement "local_228 = 0x21;" (assignment_expression "local_228 = 0x21" (identifier "local_228") (= "=") (number_literal "0x21")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffd1:\n    local_228 = 0x22;\n    break;" (case "case") (number_literal "0xffd1") (: ":") (expression_statement "local_228 = 0x22;" (assignment_expression "local_228 = 0x22" (identifier "local_228") (= "=") (number_literal "0x22")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    uVar13 = param_2[6];\n    uVar15 = uVar13 & 4;\n    if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }\n    local_228 = 0;\n    goto LAB_0014dbfe;" (default "default") (: ":") (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" (identifier "uVar13") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" (identifier "uVar15") (= "=") (binary_expression "uVar13 & 4" (identifier "uVar13") (& "&") (number_literal "4"))) (; ";")) (if_statement "if (uVar15 == 0) {\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }\n      if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }\n      local_228 = 3;\n      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;\n      local_228 = 0;\n      goto LAB_0014dbca;\n    }" ({ "{") (if_statement "if (uVar2 == 0xff95) {\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }" (if "if") (parenthesized_expression "(uVar2 == 0xff95)" (( "(") (binary_expression "uVar2 == 0xff95" (identifier "uVar2") (== "==") (number_literal "0xff95")) () ")")) (compound_statement "{\n        local_228 = 1;\n        goto LAB_0014dbfe;\n      }" ({ "{") (expression_statement "local_228 = 1;" (assignment_expression "local_228 = 1" (identifier "local_228") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0014dbfe;" (goto "goto") (statement_identifier "LAB_0014dbfe") (; ";")) (} "}"))) (if_statement "if (uVar2 < 0xff96) {\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }" (if "if") (parenthesized_expression "(uVar2 < 0xff96)" (( "(") (binary_expression "uVar2 < 0xff96" (identifier "uVar2") (< "<") (number_literal "0xff96")) () ")")) (compound_statement "{\n        if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }\n        goto LAB_0014dbfe;\n      }" ({ "{") (if_statement "if (uVar2 == 0xff56) {\n          local_228 = 6;\n        }\n        else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" (if "if") (parenthesized_expression "(uVar2 == 0xff56)" (( "(") (binary_expression "uVar2 == 0xff56" (identifier "uVar2") (== "==") (number_literal "0xff56")) () ")")) (compound_statement "{\n          local_228 = 6;\n        }" ({ "{") (expression_statement "local_228 = 6;" (assignment_expression "local_228 = 6" (identifier "local_228") (= "=") (number_literal "6")) (; ";")) (} "}")) (else_clause "else if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" (else "else") (if_statement "if (uVar2 < 0xff57) {\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }\n        else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" (if "if") (parenthesized_expression "(uVar2 < 0xff57)" (( "(") (binary_expression "uVar2 < 0xff57" (identifier "uVar2") (< "<") (number_literal "0xff57")) () ")")) (compound_statement "{\n          local_228 = 1;\n          if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }\n        }" ({ "{") (expression_statement "local_228 = 1;" (assignment_expression "local_228 = 1" (identifier "local_228") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar2 != 0xff50) {\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }" (if "if") (parenthesized_expression "(uVar2 != 0xff50)" (( "(") (binary_expression "uVar2 != 0xff50" (identifier "uVar2") (!= "!=") (number_literal "0xff50")) () ")")) (compound_statement "{\n            if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 5;\n          }" ({ "{") (if_statement "if (uVar2 != 0xff55) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" (if "if") (parenthesized_expression "(uVar2 != 0xff55)" (( "(") (binary_expression "uVar2 != 0xff55" (identifier "uVar2") (!= "!=") (number_literal "0xff55")) () ")")) (compound_statement "{\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" ({ "{") (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" (identifier "local_228") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0014dbca;" (goto "goto") (statement_identifier "LAB_0014dbca") (; ";")) (} "}"))) (expression_statement "local_228 = 5;" (assignment_expression "local_228 = 5" (identifier "local_228") (= "=") (number_literal "5")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" (else "else") (compound_statement "{\n          local_228 = 4;\n          if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }\n        }" ({ "{") (expression_statement "local_228 = 4;" (assignment_expression "local_228 = 4" (identifier "local_228") (= "=") (number_literal "4")) (; ";")) (if_statement "if (uVar2 != 0xff57) {\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }" (if "if") (parenthesized_expression "(uVar2 != 0xff57)" (( "(") (binary_expression "uVar2 != 0xff57" (identifier "uVar2") (!= "!=") (number_literal "0xff57")) () ")")) (compound_statement "{\n            if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }\n            local_228 = 2;\n          }" ({ "{") (if_statement "if (uVar2 != 0xff63) {\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" (if "if") (parenthesized_expression "(uVar2 != 0xff63)" (( "(") (binary_expression "uVar2 != 0xff63" (identifier "uVar2") (!= "!=") (number_literal "0xff63")) () ")")) (compound_statement "{\n              local_228 = 0;\n              goto LAB_0014dbca;\n            }" ({ "{") (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" (identifier "local_228") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0014dbca;" (goto "goto") (statement_identifier "LAB_0014dbca") (; ";")) (} "}"))) (expression_statement "local_228 = 2;" (assignment_expression "local_228 = 2" (identifier "local_228") (= "=") (number_literal "2")) (; ";")) (} "}"))) (} "}")))))) (goto_statement "goto LAB_0014dbfe;" (goto "goto") (statement_identifier "LAB_0014dbfe") (; ";")) (} "}"))) (if_statement "if (uVar2 == 0xff9c) {\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }" (if "if") (parenthesized_expression "(uVar2 == 0xff9c)" (( "(") (binary_expression "uVar2 == 0xff9c" (identifier "uVar2") (== "==") (number_literal "0xff9c")) () ")")) (compound_statement "{\n        local_228 = 4;\n        goto LAB_0014dbfe;\n      }" ({ "{") (expression_statement "local_228 = 4;" (assignment_expression "local_228 = 4" (identifier "local_228") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_0014dbfe;" (goto "goto") (statement_identifier "LAB_0014dbfe") (; ";")) (} "}"))) (if_statement "if (uVar2 < 0xff9d) {\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }" (if "if") (parenthesized_expression "(uVar2 < 0xff9d)" (( "(") (binary_expression "uVar2 < 0xff9d" (identifier "uVar2") (< "<") (number_literal "0xff9d")) () ")")) (compound_statement "{\n        local_228 = 5;\n        if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }\n        goto LAB_0014dbfe;\n      }" ({ "{") (expression_statement "local_228 = 5;" (assignment_expression "local_228 = 5" (identifier "local_228") (= "=") (number_literal "5")) (; ";")) (if_statement "if (uVar2 != 0xff9a) {\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }" (if "if") (parenthesized_expression "(uVar2 != 0xff9a)" (( "(") (binary_expression "uVar2 != 0xff9a" (identifier "uVar2") (!= "!=") (number_literal "0xff9a")) () ")")) (compound_statement "{\n          if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }\n          local_228 = 6;\n        }" ({ "{") (if_statement "if (uVar2 != 0xff9b) {\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }" (if "if") (parenthesized_expression "(uVar2 != 0xff9b)" (( "(") (binary_expression "uVar2 != 0xff9b" (identifier "uVar2") (!= "!=") (number_literal "0xff9b")) () ")")) (compound_statement "{\n            local_228 = 0;\n            goto LAB_0014dbca;\n          }" ({ "{") (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" (identifier "local_228") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0014dbca;" (goto "goto") (statement_identifier "LAB_0014dbca") (; ";")) (} "}"))) (expression_statement "local_228 = 6;" (assignment_expression "local_228 = 6" (identifier "local_228") (= "=") (number_literal "6")) (; ";")) (} "}"))) (goto_statement "goto LAB_0014dbfe;" (goto "goto") (statement_identifier "LAB_0014dbfe") (; ";")) (} "}"))) (expression_statement "local_228 = 3;" (assignment_expression "local_228 = 3" (identifier "local_228") (= "=") (number_literal "3")) (; ";")) (if_statement "if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))\n      goto LAB_0014dbfe;" (if "if") (parenthesized_expression "(((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))" (( "(") (binary_expression "((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e)" (parenthesized_expression "((uVar2 == 0xff9f) || (uVar2 == 0xffff))" (( "(") (binary_expression "(uVar2 == 0xff9f) || (uVar2 == 0xffff)" (parenthesized_expression "(uVar2 == 0xff9f)" (( "(") (binary_expression "uVar2 == 0xff9f" (identifier "uVar2") (== "==") (number_literal "0xff9f")) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0xffff)" (( "(") (binary_expression "uVar2 == 0xffff" (identifier "uVar2") (== "==") (number_literal "0xffff")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_228 = 2, uVar2 == 0xff9e)" (( "(") (comma_expression "local_228 = 2, uVar2 == 0xff9e" (assignment_expression "local_228 = 2" (identifier "local_228") (= "=") (number_literal "2")) (, ",") (binary_expression "uVar2 == 0xff9e" (identifier "uVar2") (== "==") (number_literal "0xff9e"))) () ")"))) () ")")) (goto_statement "goto LAB_0014dbfe;" (goto "goto") (statement_identifier "LAB_0014dbfe") (; ";"))) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" (identifier "local_228") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0014dbca;" (goto "goto") (statement_identifier "LAB_0014dbca") (; ";")) (} "}"))) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" (identifier "local_228") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0014dbfe;" (goto "goto") (statement_identifier "LAB_0014dbfe") (; ";"))) (} "}"))) (expression_statement "uVar13 = param_2[6];" (assignment_expression "uVar13 = param_2[6]" (identifier "uVar13") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar15 = uVar13 & 4;" (assignment_expression "uVar15 = uVar13 & 4" (identifier "uVar15") (= "=") (binary_expression "uVar13 & 4" (identifier "uVar13") (& "&") (number_literal "4"))) (; ";")) (labeled_statement "LAB_0014e24b:\n  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" (statement_identifier "LAB_0014e24b") (: ":") (expression_statement "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);" (assignment_expression "iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (* "*") (cast_expression "(int *)(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0xda0) + 0x1b0)" (( "(") (binary_expression "*(long *)(param_3 + 0xda0) + 0x1b0" (pointer_expression "*(long *)(param_3 + 0xda0)" (* "*") (cast_expression "(long *)(param_3 + 0xda0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (+ "+") (number_literal "0x1b0")) () ")"))))) (; ";"))) (if_statement "if (iVar14 == 0) {\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }\n  else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar3 = 10 < local_228;\n    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }\nLAB_0014d90a:\n    iVar5 = iVar16 - iVar6;\n    local_228 = 0;\n  }" ({ "{") (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" (identifier "bVar3") (= "=") (binary_expression "10 < local_228" (number_literal "10") (< "<") (identifier "local_228"))) (; ";")) (if_statement "if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }\n    else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" (if "if") (parenthesized_expression "((0x17 < local_228 - 0xbU) || (iVar5 != 5))" (( "(") (binary_expression "(0x17 < local_228 - 0xbU) || (iVar5 != 5)" (parenthesized_expression "(0x17 < local_228 - 0xbU)" (( "(") (binary_expression "0x17 < local_228 - 0xbU" (number_literal "0x17") (< "<") (binary_expression "local_228 - 0xbU" (identifier "local_228") (- "-") (number_literal "0xbU"))) () ")")) (|| "||") (parenthesized_expression "(iVar5 != 5)" (( "(") (binary_expression "iVar5 != 5" (identifier "iVar5") (!= "!=") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;\n      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);\n      if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }\n    }" ({ "{") (if_statement "if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;" (if "if") (parenthesized_expression "((5 < local_228 - 1U) || (iVar5 != 5))" (( "(") (binary_expression "(5 < local_228 - 1U) || (iVar5 != 5)" (parenthesized_expression "(5 < local_228 - 1U)" (( "(") (binary_expression "5 < local_228 - 1U" (number_literal "5") (< "<") (binary_expression "local_228 - 1U" (identifier "local_228") (- "-") (number_literal "1U"))) () ")")) (|| "||") (parenthesized_expression "(iVar5 != 5)" (( "(") (binary_expression "iVar5 != 5" (identifier "iVar5") (!= "!=") (number_literal "5")) () ")"))) () ")")) (goto_statement "goto LAB_0014dd14;" (goto "goto") (statement_identifier "LAB_0014dd14") (; ";"))) (expression_statement "local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);" (assignment_expression "local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48)" (identifier "local_188") (= "=") (call_expression "CONCAT17(local_188._7_1_,0x4749462e4c48)" (identifier "CONCAT17") (argument_list "(local_188._7_1_,0x4749462e4c48)" (( "(") (field_expression "local_188._7_1_" (identifier "local_188") (. ".") (field_identifier "_7_1_")) (, ",") (number_literal "0x4749462e4c48") () ")")))) (; ";")) (if_statement "if (local_228 == 3) {\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" (if "if") (parenthesized_expression "(local_228 == 3)" (( "(") (binary_expression "local_228 == 3" (identifier "local_228") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);\n        iVar16 = 2;\n      }" ({ "{") (expression_statement "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);" (assignment_expression "local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f)" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT31(local_147[0]._1_3_,0x7f)" (identifier "CONCAT31") (argument_list "(local_147[0]._1_3_,0x7f)" (( "(") (field_expression "local_147[0]._1_3_" (subscript_expression "local_147[0]" (identifier "local_147") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "0x7f") () ")")))) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" (else "else") (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));\n        iVar16 = 4;\n      }" ({ "{") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)))" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f38e,\n                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)))" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f38e" (& "&") (identifier "DAT_0017f38e")) (, ",") (cast_expression "(int)*(char *)((long)&local_188 + (long)(local_228 + -1))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)((long)&local_188 + (long)(local_228 + -1))" (* "*") (cast_expression "(char *)((long)&local_188 + (long)(local_228 + -1))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_188 + (long)(local_228 + -1))" (( "(") (binary_expression "(long)&local_188 + (long)(local_228 + -1)" (cast_expression "(long)&local_188" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_188" (& "&") (identifier "local_188"))) (+ "+") (cast_expression "(long)(local_228 + -1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(local_228 + -1)" (( "(") (binary_expression "local_228 + -1" (identifier "local_228") (+ "+") (number_literal "-1")) () ")")))) () ")"))))) () ")"))) (; ";")) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" (identifier "iVar16") (= "=") (number_literal "4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" (else "else") (compound_statement "{\nLAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;\n      local_180 = 0x62615a5958575655;\n      local_178 = 0x6a69686766656463;\n      local_170 = 0x7271706f6e6d6c6b;\n      local_168 = 0x7a79787776757473;\n      local_160 = 0x7b605f5e5d5c5b40;\n      local_158 = 0;\n      iVar5 = 8;\n      switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }\n      if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }\n      if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));\n      iVar16 = 4;\n    }" ({ "{") (labeled_statement "LAB_0014ddd3:\n      local_188 = 0x54535251504f4e4d;" (statement_identifier "LAB_0014ddd3") (: ":") (expression_statement "local_188 = 0x54535251504f4e4d;" (assignment_expression "local_188 = 0x54535251504f4e4d" (identifier "local_188") (= "=") (number_literal "0x54535251504f4e4d")) (; ";"))) (expression_statement "local_180 = 0x62615a5958575655;" (assignment_expression "local_180 = 0x62615a5958575655" (identifier "local_180") (= "=") (number_literal "0x62615a5958575655")) (; ";")) (expression_statement "local_178 = 0x6a69686766656463;" (assignment_expression "local_178 = 0x6a69686766656463" (identifier "local_178") (= "=") (number_literal "0x6a69686766656463")) (; ";")) (expression_statement "local_170 = 0x7271706f6e6d6c6b;" (assignment_expression "local_170 = 0x7271706f6e6d6c6b" (identifier "local_170") (= "=") (number_literal "0x7271706f6e6d6c6b")) (; ";")) (expression_statement "local_168 = 0x7a79787776757473;" (assignment_expression "local_168 = 0x7a79787776757473" (identifier "local_168") (= "=") (number_literal "0x7a79787776757473")) (; ";")) (expression_statement "local_160 = 0x7b605f5e5d5c5b40;" (assignment_expression "local_160 = 0x7b605f5e5d5c5b40" (identifier "local_160") (= "=") (number_literal "0x7b605f5e5d5c5b40")) (; ";")) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" (identifier "local_158") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (switch_statement "switch(uVar2) {\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }" (switch "switch") (parenthesized_expression "(uVar2)" (( "(") (identifier "uVar2") () ")")) (compound_statement "{\n      case 0xffbf:\n        iVar5 = 1;\n        break;\n      case 0xffc0:\n        iVar5 = 2;\n        break;\n      case 0xffc1:\n        iVar5 = 3;\n        break;\n      case 0xffc2:\n        iVar5 = 4;\n        break;\n      case 0xffc3:\n        iVar5 = 5;\n        break;\n      case 0xffc4:\n        iVar5 = 6;\n        break;\n      case 0xffc5:\n        iVar5 = 7;\n        break;\n      case 0xffc6:\n        break;\n      case 0xffc7:\n        iVar5 = 9;\n        break;\n      case 0xffc8:\n        iVar5 = 10;\n        break;\n      case 0xffc9:\n        iVar5 = 0xb;\n        break;\n      default:\n        iVar5 = 0;\n      }" ({ "{") (case_statement "case 0xffbf:\n        iVar5 = 1;\n        break;" (case "case") (number_literal "0xffbf") (: ":") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc0:\n        iVar5 = 2;\n        break;" (case "case") (number_literal "0xffc0") (: ":") (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" (identifier "iVar5") (= "=") (number_literal "2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc1:\n        iVar5 = 3;\n        break;" (case "case") (number_literal "0xffc1") (: ":") (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc2:\n        iVar5 = 4;\n        break;" (case "case") (number_literal "0xffc2") (: ":") (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc3:\n        iVar5 = 5;\n        break;" (case "case") (number_literal "0xffc3") (: ":") (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc4:\n        iVar5 = 6;\n        break;" (case "case") (number_literal "0xffc4") (: ":") (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" (identifier "iVar5") (= "=") (number_literal "6")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc5:\n        iVar5 = 7;\n        break;" (case "case") (number_literal "0xffc5") (: ":") (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" (identifier "iVar5") (= "=") (number_literal "7")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc6:\n        break;" (case "case") (number_literal "0xffc6") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc7:\n        iVar5 = 9;\n        break;" (case "case") (number_literal "0xffc7") (: ":") (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc8:\n        iVar5 = 10;\n        break;" (case "case") (number_literal "0xffc8") (: ":") (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" (identifier "iVar5") (= "=") (number_literal "10")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xffc9:\n        iVar5 = 0xb;\n        break;" (case "case") (number_literal "0xffc9") (: ":") (expression_statement "iVar5 = 0xb;" (assignment_expression "iVar5 = 0xb" (identifier "iVar5") (= "=") (number_literal "0xb")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n        iVar5 = 0;" (default "default") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";"))) (} "}"))) (if_statement "if ((uVar13 & 1) != 0) {\n        iVar5 = iVar5 + 0xc;\n      }" (if "if") (parenthesized_expression "((uVar13 & 1) != 0)" (( "(") (binary_expression "(uVar13 & 1) != 0" (parenthesized_expression "(uVar13 & 1)" (( "(") (binary_expression "uVar13 & 1" (identifier "uVar13") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = iVar5 + 0xc;\n      }" ({ "{") (expression_statement "iVar5 = iVar5 + 0xc;" (assignment_expression "iVar5 = iVar5 + 0xc" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc"))) (; ";")) (} "}"))) (if_statement "if (uVar15 != 0) {\n        iVar5 = iVar5 + 0x18;\n      }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = iVar5 + 0x18;\n      }" ({ "{") (expression_statement "iVar5 = iVar5 + 0x18;" (assignment_expression "iVar5 = iVar5 + 0x18" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18"))) (; ";")) (} "}"))) (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5))" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5))" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f38e" (& "&") (identifier "DAT_0017f38e")) (, ",") (cast_expression "(int)*(char *)((long)&local_188 + (long)iVar5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)((long)&local_188 + (long)iVar5)" (* "*") (cast_expression "(char *)((long)&local_188 + (long)iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_188 + (long)iVar5)" (( "(") (binary_expression "(long)&local_188 + (long)iVar5" (cast_expression "(long)&local_188" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_188" (& "&") (identifier "local_188"))) (+ "+") (cast_expression "(long)iVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar5"))) () ")"))))) () ")"))) (; ";")) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" (identifier "iVar16") (= "=") (number_literal "4")) (; ";")) (} "}")))) (labeled_statement "LAB_0014d90a:\n    iVar5 = iVar16 - iVar6;" (statement_identifier "LAB_0014d90a") (: ":") (expression_statement "iVar5 = iVar16 - iVar6;" (assignment_expression "iVar5 = iVar16 - iVar6" (identifier "iVar5") (= "=") (binary_expression "iVar16 - iVar6" (identifier "iVar16") (- "-") (identifier "iVar6"))) (; ";"))) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" (identifier "local_228") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" (else "else") (compound_statement "{\nLAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }\n    bVar3 = 10 < local_228;\n    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;\nLAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }\n    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }\n    if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }\nLAB_0014e155:\n    iVar5 = iVar16 - iVar6;\n    if (iVar5 < 1) goto LAB_0014cf81;\n  }" ({ "{") (labeled_statement "LAB_0014dce7:\n    if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" (statement_identifier "LAB_0014dce7") (: ":") (if_statement "if (local_228 - 1U < 6) {\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" (if "if") (parenthesized_expression "(local_228 - 1U < 6)" (( "(") (binary_expression "local_228 - 1U < 6" (binary_expression "local_228 - 1U" (identifier "local_228") (- "-") (number_literal "1U")) (< "<") (number_literal "6")) () ")")) (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);\n      iVar16 = 3;\n      goto LAB_0014d90a;\n    }" ({ "{") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228])" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228])" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f385" (& "&") (identifier "DAT_0017f385")) (, ",") (cast_expression "(int)" HLMEIG"[local_228]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "" HLMEIG"[local_228]" (string_literal "" HLMEIG"" (" """) (string_content " HLMEIG") (" """)) ([ "[") (identifier "local_228") (] "]"))) () ")"))) (; ";")) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" (identifier "iVar16") (= "=") (number_literal "3")) (; ";")) (goto_statement "goto LAB_0014d90a;" (goto "goto") (statement_identifier "LAB_0014d90a") (; ";")) (} "}")))) (expression_statement "bVar3 = 10 < local_228;" (assignment_expression "bVar3 = 10 < local_228" (identifier "bVar3") (= "=") (binary_expression "10 < local_228" (number_literal "10") (< "<") (identifier "local_228"))) (; ";")) (if_statement "if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;" (if "if") (parenthesized_expression "((local_228 - 0xbU < 0x18) && (iVar5 == 5))" (( "(") (binary_expression "(local_228 - 0xbU < 0x18) && (iVar5 == 5)" (parenthesized_expression "(local_228 - 0xbU < 0x18)" (( "(") (binary_expression "local_228 - 0xbU < 0x18" (binary_expression "local_228 - 0xbU" (identifier "local_228") (- "-") (number_literal "0xbU")) (< "<") (number_literal "0x18")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 == 5)" (( "(") (binary_expression "iVar5 == 5" (identifier "iVar5") (== "==") (number_literal "5")) () ")"))) () ")")) (goto_statement "goto LAB_0014ddd3;" (goto "goto") (statement_identifier "LAB_0014ddd3") (; ";"))) (labeled_statement "LAB_0014dd14:\n    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" (statement_identifier "LAB_0014dd14") (: ":") (if_statement "if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" (if "if") (parenthesized_expression "(((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe))" (( "(") (binary_expression "((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)" (parenthesized_expression "((iVar5 == 4) || (iVar14 != 0))" (( "(") (binary_expression "(iVar5 == 4) || (iVar14 != 0)" (parenthesized_expression "(iVar5 == 4)" (( "(") (binary_expression "iVar5 == 4" (identifier "iVar5") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_228 - 0xbU < 0xe)" (( "(") (binary_expression "local_228 - 0xbU < 0xe" (binary_expression "local_228 - 0xbU" (identifier "local_228") (- "-") (number_literal "0xbU")) (< "<") (number_literal "0xe")) () ")"))) () ")")) (compound_statement "{\n      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" ({ "{") (expression_statement "iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);" (assignment_expression "iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228)" (identifier "iVar5") (= "=") (binary_expression "(uint)(0xf < local_228) + (uint)(0x15 < local_228)" (call_expression "(uint)(0xf < local_228)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xf < local_228)" (( "(") (binary_expression "0xf < local_228" (number_literal "0xf") (< "<") (identifier "local_228")) () ")"))) (+ "+") (call_expression "(uint)(0x15 < local_228)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x15 < local_228)" (( "(") (binary_expression "0x15 < local_228" (number_literal "0x15") (< "<") (identifier "local_228")) () ")"))))) (; ";")) (if_statement "if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);\n        iVar16 = 4;\n      }" ({ "{") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f389" (& "&") (identifier "DAT_0017f389")) (, ",") (binary_expression "(local_228 + 0x45) - iVar5" (parenthesized_expression "(local_228 + 0x45)" (( "(") (binary_expression "local_228 + 0x45" (identifier "local_228") (+ "+") (number_literal "0x45")) () ")")) (- "-") (identifier "iVar5")) () ")"))) (; ";")) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" (identifier "iVar16") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" (else "else") (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);\n        iVar16 = 3;\n      }" ({ "{") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f385" (& "&") (identifier "DAT_0017f385")) (, ",") (binary_expression "(local_228 + 0x45) - iVar5" (parenthesized_expression "(local_228 + 0x45)" (( "(") (binary_expression "local_228 + 0x45" (identifier "local_228") (+ "+") (number_literal "0x45")) () ")")) (- "-") (identifier "iVar5")) () ")"))) (; ";")) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" (identifier "iVar16") (= "=") (number_literal "3")) (; ";")) (} "}")))) (goto_statement "goto LAB_0014d90a;" (goto "goto") (statement_identifier "LAB_0014d90a") (; ";")) (} "}")))) (if_statement "if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }" (if "if") (parenthesized_expression "(((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10))" (( "(") (binary_expression "((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)" (parenthesized_expression "((bool)(iVar5 == 1 & bVar3))" (( "(") (cast_expression "(bool)(iVar5 == 1 & bVar3)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(iVar5 == 1 & bVar3)" (( "(") (binary_expression "iVar5 == 1 & bVar3" (binary_expression "iVar5 == 1" (identifier "iVar5") (== "==") (number_literal "1")) (& "&") (identifier "bVar3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_228 < 0x10)" (( "(") (binary_expression "local_228 < 0x10" (identifier "local_228") (< "<") (number_literal "0x10")) () ")"))) () ")")) (compound_statement "{\n      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);\n      iVar16 = 5;\n      goto LAB_0014d90a;\n    }" ({ "{") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_001827e1" (& "&") (identifier "DAT_001827e1")) (, ",") (binary_expression "local_228 + 0x36" (identifier "local_228") (+ "+") (number_literal "0x36")) () ")"))) (; ";")) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" (identifier "iVar16") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_0014d90a;" (goto "goto") (statement_identifier "LAB_0014d90a") (; ";")) (} "}"))) (if_statement "if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" (if "if") (parenthesized_expression "(((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf))" (( "(") (binary_expression "((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)" (parenthesized_expression "((bool)(iVar5 == 2 & bVar3))" (( "(") (cast_expression "(bool)(iVar5 == 2 & bVar3)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(iVar5 == 2 & bVar3)" (( "(") (binary_expression "iVar5 == 2 & bVar3" (binary_expression "iVar5 == 2" (identifier "iVar5") (== "==") (number_literal "2")) (& "&") (identifier "bVar3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_228 < 0xf)" (( "(") (binary_expression "local_228 < 0xf" (identifier "local_228") (< "<") (number_literal "0xf")) () ")"))) () ")")) (compound_statement "{\n      if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }\n      goto LAB_0014d90a;\n    }" ({ "{") (if_statement "if (iVar14 == 0) {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }\n      else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);\n        iVar16 = 4;\n      }" ({ "{") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f389" (& "&") (identifier "DAT_0017f389")) (, ",") (binary_expression "local_228 + 0x45" (identifier "local_228") (+ "+") (number_literal "0x45")) () ")"))) (; ";")) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" (identifier "iVar16") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" (else "else") (compound_statement "{\n        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);\n        iVar16 = 3;\n      }" ({ "{") (expression_statement "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);" (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_0017f385" (& "&") (identifier "DAT_0017f385")) (, ",") (binary_expression "local_228 + 0x45" (identifier "local_228") (+ "+") (number_literal "0x45")) () ")"))) (; ";")) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" (identifier "iVar16") (= "=") (number_literal "3")) (; ";")) (} "}")))) (goto_statement "goto LAB_0014d90a;" (goto "goto") (statement_identifier "LAB_0014d90a") (; ";")) (} "}"))) (if_statement "if (((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }\n    else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" (if "if") (parenthesized_expression "(((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0))" (( "(") (binary_expression "((local_228 == 1) || (local_228 == 4)) &&\n       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)" (parenthesized_expression "((local_228 == 1) || (local_228 == 4))" (( "(") (binary_expression "(local_228 == 1) || (local_228 == 4)" (parenthesized_expression "(local_228 == 1)" (( "(") (binary_expression "local_228 == 1" (identifier "local_228") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(local_228 == 4)" (( "(") (binary_expression "local_228 == 4" (identifier "local_228") (== "==") (number_literal "4")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)" (( "(") (comma_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0" (assignment_expression "iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40)" (identifier "iVar5") (= "=") (call_expression "FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40)" (identifier "FUN_0011558e") (argument_list "(*(undefined8 *)(param_3 + 0x22d0),0x40)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x22d0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x22d0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22d0)" (( "(") (binary_expression "param_3 + 0x22d0" (identifier "param_3") (+ "+") (number_literal "0x22d0")) () ")")))) (, ",") (number_literal "0x40") () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      puVar9 = &DAT_001827d9;\n      if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }\n      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);\n      iVar16 = iVar16 + 1;\n      local_228 = 0;\n    }" ({ "{") (expression_statement "puVar9 = &DAT_001827d9;" (assignment_expression "puVar9 = &DAT_001827d9" (identifier "puVar9") (= "=") (pointer_expression "&DAT_001827d9" (& "&") (identifier "DAT_001827d9"))) (; ";")) (if_statement "if (local_228 != 1) {\n        puVar9 = &DAT_001827dd;\n      }" (if "if") (parenthesized_expression "(local_228 != 1)" (( "(") (binary_expression "local_228 != 1" (identifier "local_228") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        puVar9 = &DAT_001827dd;\n      }" ({ "{") (expression_statement "puVar9 = &DAT_001827dd;" (assignment_expression "puVar9 = &DAT_001827dd" (identifier "puVar9") (= "=") (pointer_expression "&DAT_001827dd" (& "&") (identifier "DAT_001827dd"))) (; ";")) (} "}"))) (expression_statement "iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);" (assignment_expression "iVar16 = __sprintf_chk(local_147,1,0xff,puVar9)" (identifier "iVar16") (= "=") (call_expression "__sprintf_chk(local_147,1,0xff,puVar9)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,puVar9)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (identifier "puVar9") () ")")))) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_228 = 0;" (assignment_expression "local_228 = 0" (identifier "local_228") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" (else "else") (compound_statement "{\n      if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }\n      switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }\n      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);\n      iVar16 = iVar16 + 1;\n    }" ({ "{") (if_statement "if (local_228 != 0) {\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }" (if "if") (parenthesized_expression "(local_228 != 0)" (( "(") (binary_expression "local_228 != 0" (identifier "local_228") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);\n        iVar16 = iVar16 + 1;\n        goto LAB_0014d90a;\n      }" ({ "{") (expression_statement "iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);" (assignment_expression "iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228)" (identifier "iVar16") (= "=") (call_expression "__sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228)" (identifier "__sprintf_chk") (argument_list "(local_147,1,0xff,&DAT_001827e7,local_228)" (( "(") (identifier "local_147") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "&DAT_001827e7" (& "&") (identifier "DAT_001827e7")) (, ",") (identifier "local_228") () ")")))) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0014d90a;" (goto "goto") (statement_identifier "LAB_0014d90a") (; ";")) (} "}"))) (switch_statement "switch(param_2[7]) {\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }" (switch "switch") (parenthesized_expression "(param_2[7])" (( "(") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) () ")")) (compound_statement "{\n      case 0xff51:\n      case 0xff96:\n        uVar12 = 0x44;\n        break;\n      case 0xff52:\n      case 0xff97:\n        uVar12 = 0x41;\n        break;\n      case 0xff53:\n      case 0xff98:\n        uVar12 = 0x43;\n        break;\n      case 0xff54:\n      case 0xff99:\n        uVar12 = 0x42;\n        break;\n      default:\n        local_228 = local_224;\n        goto LAB_0014e155;\n      case 0xff58:\n      case 0xff9d:\n        uVar12 = 0x47;\n      }" ({ "{") (case_statement "case 0xff51:" (case "case") (number_literal "0xff51") (: ":")) (case_statement "case 0xff96:\n        uVar12 = 0x44;\n        break;" (case "case") (number_literal "0xff96") (: ":") (expression_statement "uVar12 = 0x44;" (assignment_expression "uVar12 = 0x44" (identifier "uVar12") (= "=") (number_literal "0x44")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff52:" (case "case") (number_literal "0xff52") (: ":")) (case_statement "case 0xff97:\n        uVar12 = 0x41;\n        break;" (case "case") (number_literal "0xff97") (: ":") (expression_statement "uVar12 = 0x41;" (assignment_expression "uVar12 = 0x41" (identifier "uVar12") (= "=") (number_literal "0x41")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff53:" (case "case") (number_literal "0xff53") (: ":")) (case_statement "case 0xff98:\n        uVar12 = 0x43;\n        break;" (case "case") (number_literal "0xff98") (: ":") (expression_statement "uVar12 = 0x43;" (assignment_expression "uVar12 = 0x43" (identifier "uVar12") (= "=") (number_literal "0x43")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xff54:" (case "case") (number_literal "0xff54") (: ":")) (case_statement "case 0xff99:\n        uVar12 = 0x42;\n        break;" (case "case") (number_literal "0xff99") (: ":") (expression_statement "uVar12 = 0x42;" (assignment_expression "uVar12 = 0x42" (identifier "uVar12") (= "=") (number_literal "0x42")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n        local_228 = local_224;\n        goto LAB_0014e155;" (default "default") (: ":") (expression_statement "local_228 = local_224;" (assignment_expression "local_228 = local_224" (identifier "local_228") (= "=") (identifier "local_224")) (; ";")) (goto_statement "goto LAB_0014e155;" (goto "goto") (statement_identifier "LAB_0014e155") (; ";"))) (case_statement "case 0xff58:" (case "case") (number_literal "0xff58") (: ":")) (case_statement "case 0xff9d:\n        uVar12 = 0x47;" (case "case") (number_literal "0xff9d") (: ":") (expression_statement "uVar12 = 0x47;" (assignment_expression "uVar12 = 0x47" (identifier "uVar12") (= "=") (number_literal "0x47")) (; ";"))) (} "}"))) (expression_statement "iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);" (assignment_expression "iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" (identifier "iVar16") (= "=") (call_expression "FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" (identifier "FUN_00137d44") (argument_list "(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4)" (( "(") (identifier "local_147") (, ",") (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0xda0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) (, ",") (identifier "uVar12") (, ",") (binary_expression "param_2[6] & 4" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (labeled_statement "LAB_0014e155:\n    iVar5 = iVar16 - iVar6;" (statement_identifier "LAB_0014e155") (: ":") (expression_statement "iVar5 = iVar16 - iVar6;" (assignment_expression "iVar5 = iVar16 - iVar6" (identifier "iVar5") (= "=") (binary_expression "iVar16 - iVar6" (identifier "iVar16") (- "-") (identifier "iVar6"))) (; ";"))) (if_statement "if (iVar5 < 1) goto LAB_0014cf81;" (if "if") (parenthesized_expression "(iVar5 < 1)" (( "(") (binary_expression "iVar5 < 1" (identifier "iVar5") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0014cf81;" (goto "goto") (statement_identifier "LAB_0014cf81") (; ";"))) (} "}")))) (labeled_statement "LAB_0014e163:\n  if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" (statement_identifier "LAB_0014e163") (: ":") (if_statement "if (bVar4) {\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }\n  else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (compound_statement "{\n    (&local_148)[iVar16] = '\0';\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }\n  }" ({ "{") (expression_statement "(&local_148)[iVar16] = '\0';" (assignment_expression "(&local_148)[iVar16] = '\0'" (subscript_expression "(&local_148)[iVar16]" (parenthesized_expression "(&local_148)" (( "(") (pointer_expression "&local_148" (& "&") (identifier "local_148")) () ")")) ([ "[") (identifier "iVar16") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }" (if "if") (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" (( "(") (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" (* "*") (cast_expression "(long *)(param_3 + 0xd88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd88)" (( "(") (binary_expression "param_3 + 0xd88" (identifier "param_3") (+ "+") (number_literal "0xd88")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);\n    }" ({ "{") (expression_statement "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);" (call_expression "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1)" (identifier "FUN_0011eaac") (argument_list "(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1)" (( "(") (pointer_expression "*(long *)(param_3 + 0xd88)" (* "*") (cast_expression "(long *)(param_3 + 0xd88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd88)" (( "(") (binary_expression "param_3 + 0xd88" (identifier "param_3") (+ "+") (number_literal "0xd88")) () ")")))) (, ",") (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" (& "&") (identifier "local_148")) (+ "+") (identifier "iVar6")) (, ",") (number_literal "0xfffffffe") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" (else "else") (if_statement "if (*(int *)(param_3 + 0xd10) == 0) {\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }\n  else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0xd10) == 0)" (( "(") (binary_expression "*(int *)(param_3 + 0xd10) == 0" (pointer_expression "*(int *)(param_3 + 0xd10)" (* "*") (cast_expression "(int *)(param_3 + 0xd10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd10)" (( "(") (binary_expression "param_3 + 0xd10" (identifier "param_3") (+ "+") (number_literal "0xd10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }\n  }" ({ "{") (if_statement "if (local_228 == 0) {\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }\n    else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" (if "if") (parenthesized_expression "(local_228 == 0)" (( "(") (binary_expression "local_228 == 0" (identifier "local_228") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }\n    }" ({ "{") (labeled_statement "LAB_0014e201:\n      if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" (statement_identifier "LAB_0014e201") (: ":") (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" (if "if") (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" (( "(") (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" (* "*") (cast_expression "(long *)(param_3 + 0xd88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd88)" (( "(") (binary_expression "param_3 + 0xd88" (identifier "param_3") (+ "+") (number_literal "0xd88")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);\n      }" ({ "{") (expression_statement "FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);" (call_expression "FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1)" (identifier "FUN_0011f45f") (argument_list "(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1)" (( "(") (pointer_expression "*(long *)(param_3 + 0xd88)" (* "*") (cast_expression "(long *)(param_3 + 0xd88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd88)" (( "(") (binary_expression "param_3 + 0xd88" (identifier "param_3") (+ "+") (number_literal "0xd88")) () ")")))) (, ",") (identifier "local_220") (, ",") (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" (& "&") (identifier "local_148")) (+ "+") (identifier "iVar6")) (, ",") (identifier "iVar5") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" (else "else") (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" (if "if") (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" (( "(") (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" (* "*") (cast_expression "(long *)(param_3 + 0xd88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd88)" (( "(") (binary_expression "param_3 + 0xd88" (identifier "param_3") (+ "+") (number_literal "0xd88")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);\n    }" ({ "{") (expression_statement "FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);" (call_expression "FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1)" (identifier "FUN_0011f2ad") (argument_list "(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1)" (( "(") (pointer_expression "*(long *)(param_3 + 0xd88)" (* "*") (cast_expression "(long *)(param_3 + 0xd88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd88)" (( "(") (binary_expression "param_3 + 0xd88" (identifier "param_3") (+ "+") (number_literal "0xd88")) () ")")))) (, ",") (binary_expression "local_208 + iVar6" (identifier "local_208") (+ "+") (identifier "iVar6")) (, ",") (identifier "iVar5") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" (else "else") (compound_statement "{\nLAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }\n  }" ({ "{") (labeled_statement "LAB_0014d003:\n    if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" (statement_identifier "LAB_0014d003") (: ":") (if_statement "if (*(long *)(param_3 + 0xd88) != 0) {\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" (if "if") (parenthesized_expression "(*(long *)(param_3 + 0xd88) != 0)" (( "(") (binary_expression "*(long *)(param_3 + 0xd88) != 0" (pointer_expression "*(long *)(param_3 + 0xd88)" (* "*") (cast_expression "(long *)(param_3 + 0xd88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd88)" (( "(") (binary_expression "param_3 + 0xd88" (identifier "param_3") (+ "+") (number_literal "0xd88")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);\n    }" ({ "{") (expression_statement "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);" (call_expression "FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1)" (identifier "FUN_0011eaac") (argument_list "(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1)" (( "(") (pointer_expression "*(long *)(param_3 + 0xd88)" (* "*") (cast_expression "(long *)(param_3 + 0xd88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd88)" (( "(") (binary_expression "param_3 + 0xd88" (identifier "param_3") (+ "+") (number_literal "0xd88")) () ")")))) (, ",") (binary_expression "&local_148 + iVar6" (pointer_expression "&local_148" (& "&") (identifier "local_148")) (+ "+") (identifier "iVar6")) (, ",") (identifier "iVar5") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")))) (} "}"))))))) (expression_statement "FUN_001495b0(param_3,0);" (call_expression "FUN_001495b0(param_3,0)" (identifier "FUN_001495b0") (argument_list "(param_3,0)" (( "(") (identifier "param_3") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));" (call_expression "FUN_0013112b(*(undefined8 *)(param_3 + 0xda0))" (identifier "FUN_0013112b") (argument_list "(*(undefined8 *)(param_3 + 0xda0))" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0xda0)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0xda0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xda0)" (( "(") (binary_expression "param_3 + 0xda0" (identifier "param_3") (+ "+") (number_literal "0xda0")) () ")")))) () ")"))) (; ";")) (labeled_statement "LAB_0014cf81:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_0014cf81") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Enum "GdkEventType": Some values do not have unique names */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1(type_2 *widget,type_3 *event,type_4 data)

{
  char var_16;
  type_5 var_26;
  long var_43;
  type_6 var_27;
  type_6 var_28;
  type_6 var_23;
  bool var_35;
  bool bVar8;
  int var_6;
  type_7 var_20;
  type_8 var_13;
  int var_4;
  type_6 var_8;
  long var_14;
  type_6 var_25;
  type_9 *puVar16;
  type_6 var_7;
  char *var_15;
  type_8 var_31;
  int var_34;
  type_8 var_32;
  int var_22;
  long var_1;
  type_10 bVar23;
  int var_33;
  int local_224;
  type_7 local_220;
  type_7 wlen;
  type_7 *wp;
  type_7 var_40 [2];
  char codes [49];
  char var_19 [256];
  
  bVar23 = 0;
  var_43 = *(long *)(var_1 + 0x28);
  *(type_11 *)((long)data + 0x22e0) = event->time;
  if (event->type == var_2) {
    if (((3 < event->keyval - 0xffe7) || (*(int *)((long)data + 0xd68) < 0)) ||
       (*(int *)((long)data + 0xd6c) < 2)) {
      var_4 = var_3(*(type_12 *)((long)data + 0x68),event);
      if (var_4 != 0) goto LAB_0014cf81;
      goto LAB_0014cf74;
    }
    var_19[0] = (char)*(int *)((long)data + 0xd68);
    if (*(int *)((long)data + 0xd10) != 0) {
      var_4 = 0;
      var_20 = L'\x01';
      goto LAB_0014d003;
    }
    local_220 = L'\x01';
    var_20 = L'\x01';
    var_4 = 0;
    goto LAB_0014e201;
  }
LAB_0014cf74:
  if (event->type != var_5) goto LAB_0014cf81;
  if (event->keyval - 0xffe7 < 4) {
    *(type_13 *)((long)data + 0xd68) = 0xffffffff;
    *(type_13 *)((long)data + 0xd6c) = 0;
    goto LAB_0014cf81;
  }
  if (((*(type_8 *)((long)data + 0x2300) & event->state) != 0) &&
     (var_4 = *(int *)((long)data + 0xd68), var_4 != -2)) {
    var_6 = 8;
    switch(event->keyval) {
    case 0xff95:
    case 0xffb7:
      var_6 = 7;
      break;
    case 0xff96:
    case 0xffb4:
      var_6 = 4;
      break;
    case 0xff97:
    case 0xffb8:
      break;
    case 0xff98:
    case 0xffb6:
      var_6 = 6;
      break;
    case 0xff99:
    case 0xffb2:
      var_6 = 2;
      break;
    case 0xff9a:
    case 0xffb9:
      var_6 = 9;
      break;
    case 0xff9b:
    case 0xffb3:
      var_6 = 3;
      break;
    case 0xff9c:
    case 0xffb1:
      var_6 = 1;
      break;
    case 0xff9d:
    case 0xffb5:
      var_6 = 5;
      break;
    case 0xff9e:
    case 0xffb0:
      var_6 = 0;
      break;
    default:
      *(type_13 *)((long)data + 0xd68) = 0xfffffffe;
      goto LAB_0014d090;
    }
    if (var_4 != -1) {
      var_6 = var_6 + var_4 * 10;
    }
    *(int *)((long)data + 0xd68) = var_6;
    *(int *)((long)data + 0xd6c) = *(int *)((long)data + 0xd6c) + 1;
    goto LAB_0014cf81;
  }
LAB_0014d090:
  var_7._0_4_ = event->state;
  var_7._4_4_ = event->keyval;
  var_8 = var_7 & 0xffffffff00000004;
  if (var_8 == 0x3e00000004) {
    var_9((type_14 *)data,L'\x01');
    goto LAB_0014cf81;
  }
  if (var_8 == 0x3c00000004) {
    var_9((type_14 *)data,L'\xffffffff');
    goto LAB_0014cf81;
  }
  var_7 = var_7 & 0xffffffff00000001;
  if (var_7 == 0xff5500000001) {
    var_10(*(type_15 **)((long)data + 0xda0),L'\0',-(*(int *)((long)data + 0xd58) / 2));
    goto LAB_0014cf81;
  }
  if (var_8 == 0xff5500000004) {
    var_10(*(type_15 **)((long)data + 0xda0),L'\0',L'\xffffffff');
    goto LAB_0014cf81;
  }
  if (var_7 == 0xff5600000001) {
    var_10(*(type_15 **)((long)data + 0xda0),L'\0',*(int *)((long)data + 0xd58) / 2);
    goto LAB_0014cf81;
  }
  if (var_8 == 0xff5600000004) {
    var_10(*(type_15 **)((long)data + 0xda0),L'\0',L'\x01');
    goto LAB_0014cf81;
  }
  if (var_7 == 0xff6300000001) {
    var_11(data);
    goto LAB_0014cf81;
  }
  var_6 = var_12(*(type_16 **)((long)data + 0x22d0),0x4e);
  if ((*(int *)(*(long *)((long)data + 0xda0) + 0x1ac) == 0) ||
     (var_4 = var_12(*(type_16 **)((long)data + 0x22d0),0x43), var_4 != 0)) {
    var_35 = false;
LAB_0014d16b:
    var_19[0] = '\x1b';
    if (((var_6 == 0) || ((8 < event->keyval - 0xff95 && (8 < event->keyval - 0xffb1)))) &&
       (var_4 = var_3(*(type_12 *)((long)data + 0x68),event),
       var_4 != 0)) goto LAB_0014cf81;
  }
  else {
    var_19[0] = '\x1b';
    var_13 = event->keyval - 0xff7f;
    if (0x3a < var_13) {
      var_35 = true;
      goto LAB_0014d16b;
    }
    if ((0x7ffd801ffc04001U >> ((type_6)var_13 & 0x3f) & 1) == 0) {
      var_35 = true;
      goto LAB_0014d16b;
    }
    var_35 = true;
  }
  var_14 = -1;
  var_15 = event->string;
  do {
    if (var_14 == 0) break;
    var_14 = var_14 + -1;
    var_16 = *var_15;
    var_15 = var_15 + (type_6)bVar23 * -2 + 1;
  } while (var_16 != '\0');
  wlen = var_17(L'\xffff',L'\0',event->string,~(type_8)var_14 + L'\xffffffff',var_40,L'\x1f');
  wp = var_40;
  var_20 = var_18
                     (&wp,&wlen,var_19 + 1,L'þ',L'7',(type_17 *)0x0,(char *)0x0,L'\0');
  var_19[var_20 + L'\x01'] = '\0';
  if ((var_19[1] == '\0') && (var_20 = var_21(event->keyval), L'\xffffffff' < var_20)) {
    var_40[0] = L'\x1b';
    local_224 = 1;
    var_22 = 2;
    var_40[1] = var_20;
  }
  else {
    var_19[0xff] = '\0';
    var_14 = -1;
    var_15 = var_19;
    do {
      if (var_14 == 0) break;
      var_14 = var_14 + -1;
      var_16 = *var_15;
      var_15 = var_15 + (type_6)bVar23 * -2 + 1;
    } while (var_16 != '\0');
    var_22 = ~(type_8)var_14 - 1;
    local_224 = 0;
  }
  var_13 = event->state;
  if ((*(type_8 *)((long)data + 0x2300) & var_13) == 0) {
    var_4 = 1;
LAB_0014d45d:
    if (var_19[1] == '\0') {
      var_8._0_4_ = event->state;
      var_8._4_4_ = event->keyval;
      if ((var_8 & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;
      if (((var_13 & 4) != 0) && (var_22 == 2)) goto LAB_0014d49c;
    }
    else if (((var_13 & 4) != 0) && (var_22 == 2)) {
      if (4 < (type_10)(var_19[1] - 0x33U)) goto LAB_0014d4a6;
      var_19[1] = var_19[1] + -0x18;
    }
    goto LAB_0014d51c;
  }
  var_4 = 0;
  if (var_22 != 1) goto LAB_0014d45d;
  if (var_19[1] == '\0') {
    var_23._0_4_ = event->state;
    var_23._4_4_ = event->keyval;
    if ((var_23 & 0xffffffff00000004) != 0x6000000004) {
      var_22 = 0;
      var_4 = 0;
      goto LAB_0014d51c;
    }
    var_4 = 0;
LAB_0014d4ea:
    var_19[1] = '\x1c';
    if ((var_13 & 4) != 0) {
      local_224 = 0;
LAB_0014d49c:
LAB_0014d4a6:
      if ((var_19[1] == '2') || (var_19[1] == ' ')) {
        var_19._1_4_ = (type_8)(type_18)var_19._2_3_ << 8;
        var_22 = 2;
      }
      else if (var_19[1] == '8') {
        var_19[1] = '\x7f';
        var_22 = 2;
      }
      else if (var_19[1] == '/') {
        var_19[1] = '\x1f';
        var_22 = 2;
      }
      else {
        var_22 = 2;
        if ((type_10)(var_19[1] - 0x40U) < 0x3f) {
          var_19._1_4_ = var_24(var_19._2_3_,var_19[1]) & 0xffffff1f;
        }
      }
      goto LAB_0014d51c;
    }
    var_25._0_4_ = event->state;
    var_25._4_4_ = event->keyval;
    local_224 = 0;
    var_22 = 2;
  }
  else {
    var_22 = 0;
    var_4 = 0;
LAB_0014d51c:
    var_25._0_4_ = event->state;
    var_25._4_4_ = event->keyval;
    if ((var_25 & 0xffffffff00000004) == 0xff6b00000004) {
      if (*(long *)((long)data + 0xd90) != 0) {
        (**(type_19 **)(*(long *)((long)data + 0xd90) + 0x30))(*(type_12 *)((long)data + 0xd98),1);
      }
      goto LAB_0014cf81;
    }
  }
  var_26 = event->keyval;
  if (var_26 == 0xff0d) {
    var_19[1] = '\r';
    bVar8 = true;
    local_224 = 0;
    var_22 = 2;
LAB_0014d670:
    local_220 = L'7';
    if ((var_25 & 0xffffffff00000001) == 0xff0800000000) {
      var_22 = var_12(*(type_16 **)((long)data + 0x22d0),0x3f);
      var_19[1] = (-(var_22 == 0) & 0x89U) + 0x7f;
      local_220 = L'7';
      local_224 = 0;
      bVar8 = true;
      var_22 = 2;
    }
  }
  else {
    if (var_19[1] != '\0') {
      bVar8 = false;
      goto LAB_0014d670;
    }
    if ((((var_26 - 0x20 & 0xffffffdf) == 0) || (var_26 == 0x32)) && ((var_13 & 5) == 4)) {
      var_22 = 2;
      local_224 = 0;
    }
    bVar8 = false;
    if ((var_25 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;
    var_19[1] = -0x60;
    local_220 = L'\x01';
    local_224 = 0;
    bVar8 = false;
    var_22 = 2;
  }
  var_27._0_4_ = event->state;
  var_27._4_4_ = event->keyval;
  if ((var_27 & 0xffffffff00000001) == 0xff0800000001) {
    var_22 = var_12(*(type_16 **)((long)data + 0x22d0),0x3f);
    var_19[1] = (-(var_22 == 0) & 0x77U) + 8;
    local_224 = 0;
    bVar8 = true;
    var_22 = 2;
  }
  var_26 = event->keyval;
  if ((var_26 != 0xfe20) &&
     (var_28._0_4_ = event->state, var_28._4_4_ = event->keyval,
     (var_28 & 0xffffffff00000001) != 0xff0900000001)) {
    if ((1 < var_22) || (var_26 != 0xff09)) goto LAB_0014d7d9;
    var_19[1] = '\t';
    var_22 = 2;
    goto switchD_0014d8c5_caseD_ff80;
  }
  var_29(var_19 + 1,"\x1b[Z",4);
  local_224 = 0;
  var_22 = 4;
LAB_0014d7d9:
  if (var_6 != 0) {
    switch(var_26) {
    case 0xff95:
    case 0xffb7:
      var_15 = "yY\x19";
      break;
    case 0xff96:
    case 0xffb4:
      var_15 = "hH\b";
      break;
    case 0xff97:
    case 0xffb8:
      var_15 = "kK\v";
      break;
    case 0xff98:
    case 0xffb6:
      var_15 = "lL\f";
      break;
    case 0xff99:
    case 0xffb2:
      var_15 = "jJ\n";
      break;
    case 0xff9a:
    case 0xffb9:
      var_15 = "uU\x15";
      break;
    case 0xff9b:
    case 0xffb3:
      var_15 = "nN\x0e";
      break;
    case 0xff9c:
    case 0xffb1:
      var_15 = "bB\x02";
      break;
    case 0xff9d:
    case 0xffb5:
      var_15 = "...";
      break;
    default:
      goto switchD_0014d802_caseD_ff9e;
    }
    if ((event->state & 4) == 0) {
      if ((event->state & 1) == 0) {
        var_19[1] = *var_15;
      }
      else {
        var_19[1] = var_15[1];
      }
    }
    else {
      var_19[1] = var_15[2];
    }
    var_20 = L'\x02' - var_4;
    var_33 = 0;
    var_22 = 2;
    goto LAB_0014e163;
  }
switchD_0014d802_caseD_ff9e:
  if (var_35) {
    switch(var_26) {
    case 0xff7f:
      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {
        var_6 = 0x50;
        goto LAB_0014d978;
      }
      var_6 = 0x50;
      goto LAB_0014d8e1;
    default:
      goto switchD_0014d8c5_caseD_ff80;
    case 0xff8d:
      var_6 = 0x4d;
      break;
    case 0xff95:
    case 0xffb7:
      var_6 = 0x77;
      break;
    case 0xff96:
    case 0xffb4:
      var_6 = 0x74;
      break;
    case 0xff97:
    case 0xffb8:
      var_6 = 0x78;
      break;
    case 0xff98:
    case 0xffb6:
      var_6 = 0x76;
      break;
    case 0xff99:
    case 0xffb2:
      var_6 = 0x72;
      break;
    case 0xff9a:
    case 0xffb9:
      var_6 = 0x79;
      break;
    case 0xff9b:
    case 0xffb3:
      var_6 = 0x73;
      break;
    case 0xff9c:
    case 0xffb1:
      var_6 = 0x71;
      break;
    case 0xff9d:
    case 0xffb5:
      var_6 = 0x75;
      break;
    case 0xff9e:
    case 0xffb0:
      var_6 = 0x70;
      break;
    case 0xff9f:
    case 0xffae:
      var_6 = 0x6e;
      break;
    case 0xffaa:
      var_6 = 0x52;
      goto LAB_0014d8cd;
    case 0xffab:
      var_6 = var_12(*(type_16 **)((long)data + 0x22d0),0x41);
      if (var_6 == 2) {
        var_6 = 0x6c - (type_8)((event->state & 1) == 0);
      }
      else {
        var_6 = 0x6d - (type_8)((event->state & 1) == 0);
      }
      break;
    case 0xffad:
      var_6 = 0x53;
      goto LAB_0014d8cd;
    case 0xffaf:
      var_6 = 0x51;
LAB_0014d8cd:
      if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;
LAB_0014d8e1:
      var_30(var_19 + 1,1,0xff,&DAT_0017f385,var_6);
      var_22 = 3;
      goto LAB_0014d90a;
    }
    if (*(int *)(*(long *)((long)data + 0xda0) + 0x1b0) == 0) {
LAB_0014d978:
      var_30(var_19 + 1,1,0xff,&DAT_0017f389,var_6);
      var_22 = 4;
    }
    else {
      var_30(var_19 + 1,1,0xff,&DAT_001827ed,var_6);
      var_22 = 4;
    }
    goto LAB_0014d90a;
  }
switchD_0014d8c5_caseD_ff80:
  var_6 = var_12(*(type_16 **)((long)data + 0x22d0),0x41);
  var_13 = event->keyval;
  switch(var_13) {
  case 0xffbe:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff4) + 0x17;
    goto LAB_0014da2f;
  case 0xffbf:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff4) + 0x18;
    goto LAB_0014da2f;
  case 0xffc0:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff4) + 0x19;
    goto LAB_0014da2f;
  case 0xffc1:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff4) + 0x1a;
    goto LAB_0014da2f;
  case 0xffc2:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff3) + 0x1c;
    goto LAB_0014da2f;
  case 0xffc3:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff4) + 0x1d;
    goto LAB_0014da2f;
  case 0xffc4:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff3) + 0x1f;
    goto LAB_0014da2f;
  case 0xffc5:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff3) + 0x20;
LAB_0014da2f:
    var_31 = event->state;
    var_32 = var_31 & 4;
    if (var_32 != 0) goto LAB_0014e24b;
LAB_0014dbca:
    var_32 = 0;
LAB_0014dbfe:
    if ((var_6 != 3) || (6 < var_33)) goto LAB_0014e24b;
    var_33 = (int)(char)(&DAT_00182a60)[var_33];
    var_34 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);
    if (var_34 != 0) goto LAB_0014dce7;
    var_35 = 10 < var_33;
    goto LAB_0014dd14;
  case 0xffc6:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff3) + 0x21;
    break;
  case 0xffc7:
    var_33 = (-(type_8)((event->state & 1) == 0) & 0xfffffff3) + 0x22;
    break;
  case 0xffc8:
    var_33 = 0x17;
    break;
  case 0xffc9:
    var_33 = 0x18;
    break;
  case 0xffca:
    var_33 = 0x19;
    break;
  case 0xffcb:
    var_33 = 0x1a;
    break;
  case 0xffcc:
    var_33 = 0x1c;
    break;
  case 0xffcd:
    var_33 = 0x1d;
    break;
  case 0xffce:
    var_33 = 0x1f;
    break;
  case 0xffcf:
    var_33 = 0x20;
    break;
  case 0xffd0:
    var_33 = 0x21;
    break;
  case 0xffd1:
    var_33 = 0x22;
    break;
  default:
    var_31 = event->state;
    var_32 = var_31 & 4;
    if (var_32 == 0) {
      if (var_13 == 0xff95) {
        var_33 = 1;
        goto LAB_0014dbfe;
      }
      if (var_13 < 0xff96) {
        if (var_13 == 0xff56) {
          var_33 = 6;
        }
        else if (var_13 < 0xff57) {
          var_33 = 1;
          if (var_13 != 0xff50) {
            if (var_13 != 0xff55) {
              var_33 = 0;
              goto LAB_0014dbca;
            }
            var_33 = 5;
          }
        }
        else {
          var_33 = 4;
          if (var_13 != 0xff57) {
            if (var_13 != 0xff63) {
              var_33 = 0;
              goto LAB_0014dbca;
            }
            var_33 = 2;
          }
        }
        goto LAB_0014dbfe;
      }
      if (var_13 == 0xff9c) {
        var_33 = 4;
        goto LAB_0014dbfe;
      }
      if (var_13 < 0xff9d) {
        var_33 = 5;
        if (var_13 != 0xff9a) {
          if (var_13 != 0xff9b) {
            var_33 = 0;
            goto LAB_0014dbca;
          }
          var_33 = 6;
        }
        goto LAB_0014dbfe;
      }
      var_33 = 3;
      if (((var_13 == 0xff9f) || (var_13 == 0xffff)) || (var_33 = 2, var_13 == 0xff9e))
      goto LAB_0014dbfe;
      var_33 = 0;
      goto LAB_0014dbca;
    }
    var_33 = 0;
    goto LAB_0014dbfe;
  }
  var_31 = event->state;
  var_32 = var_31 & 4;
LAB_0014e24b:
  var_34 = *(int *)(*(long *)((long)data + 0xda0) + 0x1b0);
  if (var_34 == 0) {
    var_35 = 10 < var_33;
    if ((0x17 < var_33 - 0xbU) || (var_6 != 5)) {
      if ((5 < var_33 - 1U) || (var_6 != 5)) goto LAB_0014dd14;
      var_29(codes,"HL.FIG",7);
      if (var_33 == 3) {
        var_19[1] = '\x7f';
        var_22 = 2;
      }
      else {
        var_30(var_19 + 1,1,0xff,&DAT_0017f38e,(int)codes[var_33 + -1]);
        var_22 = 4;
      }
    }
    else {
LAB_0014ddd3:
      var_29(codes,"MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@[\\]^_`{",0x31);
      var_6 = 8;
      switch(var_13) {
      case 0xffbf:
        var_6 = 1;
        break;
      case 0xffc0:
        var_6 = 2;
        break;
      case 0xffc1:
        var_6 = 3;
        break;
      case 0xffc2:
        var_6 = 4;
        break;
      case 0xffc3:
        var_6 = 5;
        break;
      case 0xffc4:
        var_6 = 6;
        break;
      case 0xffc5:
        var_6 = 7;
        break;
      case 0xffc6:
        break;
      case 0xffc7:
        var_6 = 9;
        break;
      case 0xffc8:
        var_6 = 10;
        break;
      case 0xffc9:
        var_6 = 0xb;
        break;
      default:
        var_6 = 0;
      }
      if ((var_31 & 1) != 0) {
        var_6 = var_6 + 0xc;
      }
      if (var_32 != 0) {
        var_6 = var_6 + 0x18;
      }
      var_30(var_19 + 1,1,0xff,&DAT_0017f38e,(int)codes[var_6]);
      var_22 = 4;
    }
LAB_0014d90a:
    var_20 = var_22 - var_4;
    var_33 = 0;
  }
  else {
LAB_0014dce7:
    if (var_33 - 1U < 6) {
      var_30(var_19 + 1,1,0xff,&DAT_0017f385,(int)" HLMEIG"[var_33]);
      var_22 = 3;
      goto LAB_0014d90a;
    }
    var_35 = 10 < var_33;
    if ((var_33 - 0xbU < 0x18) && (var_6 == 5)) goto LAB_0014ddd3;
LAB_0014dd14:
    if (((var_6 == 4) || (var_34 != 0)) && (var_33 - 0xbU < 0xe)) {
      var_6 = (type_8)(0xf < var_33) + (type_8)(0x15 < var_33);
      if (var_34 == 0) {
        var_30(var_19 + 1,1,0xff,&DAT_0017f389,(var_33 + 0x45) - var_6);
        var_22 = 4;
      }
      else {
        var_30(var_19 + 1,1,0xff,&DAT_0017f385,(var_33 + 0x45) - var_6);
        var_22 = 3;
      }
      goto LAB_0014d90a;
    }
    if (((bool)(var_6 == 1 & var_35)) && (var_33 < 0x10)) {
      var_30(var_19 + 1,1,0xff,&DAT_001827e1,var_33 + 0x36);
      var_22 = 5;
      goto LAB_0014d90a;
    }
    if (((bool)(var_6 == 2 & var_35)) && (var_33 < 0xf)) {
      if (var_34 == 0) {
        var_30(var_19 + 1,1,0xff,&DAT_0017f389,var_33 + 0x45);
        var_22 = 4;
      }
      else {
        var_30(var_19 + 1,1,0xff,&DAT_0017f385,var_33 + 0x45);
        var_22 = 3;
      }
      goto LAB_0014d90a;
    }
    if (((var_33 == 1) || (var_33 == 4)) &&
       (var_6 = var_12(*(type_16 **)((long)data + 0x22d0),0x40), var_6 != 0)) {
      puVar16 = &DAT_001827d9;
      if (var_33 != 1) {
        puVar16 = &DAT_001827dd;
      }
      var_22 = var_30(var_19 + 1,1,0xff,puVar16);
      var_22 = var_22 + 1;
      var_33 = 0;
    }
    else {
      if (var_33 != 0) {
        var_22 = var_30(var_19 + 1,1,0xff,&DAT_001827e7,var_33);
        var_22 = var_22 + 1;
        goto LAB_0014d90a;
      }
      switch(event->keyval) {
      case 0xff51:
      case 0xff96:
        var_20 = L'D';
        break;
      case 0xff52:
      case 0xff97:
        var_20 = L'A';
        break;
      case 0xff53:
      case 0xff98:
        var_20 = L'C';
        break;
      case 0xff54:
      case 0xff99:
        var_20 = L'B';
        break;
      default:
        var_33 = local_224;
        goto LAB_0014e155;
      case 0xff58:
      case 0xff9d:
        var_20 = L'G';
      }
      var_20 = var_36(var_19 + 1,*(type_15 **)((long)data + 0xda0),var_20,
                                event->state & 4);
      var_22 = var_20 + L'\x01';
    }
LAB_0014e155:
    var_20 = var_22 - var_4;
    if (var_20 < L'\x01') goto LAB_0014cf81;
  }
LAB_0014e163:
  if (bVar8) {
    var_19[var_22] = '\0';
    if (*(void **)((long)data + 0xd88) != (void *)0x0) {
      var_37(*(void **)((long)data + 0xd88),var_19 + var_4,L'\xfffffffe',L'\x01');
    }
  }
  else if (*(int *)((long)data + 0xd10) == 0) {
    if (var_33 == 0) {
LAB_0014e201:
      if (*(void **)((long)data + 0xd88) != (void *)0x0) {
        var_38(*(void **)((long)data + 0xd88),local_220,var_19 + var_4,var_20,L'\x01');
      }
    }
    else if (*(void **)((long)data + 0xd88) != (void *)0x0) {
      var_39(*(void **)((long)data + 0xd88),var_40 + var_4,var_20,L'\x01');
    }
  }
  else {
LAB_0014d003:
    if (*(void **)((long)data + 0xd88) != (void *)0x0) {
      var_37(*(void **)((long)data + 0xd88),var_19 + var_4,var_20,L'\x01');
    }
  }
  var_41((type_14 *)data,L'\0');
  var_42(*(type_15 **)((long)data + 0xda0));
LAB_0014cf81:
  if (var_43 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_44();
  }
  return 1;
}


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

undefined8 MASKED(undefined8 param_1,int *param_2,long param_3)

{
  char cVar1;
  uint uVar2;
  bool bVar3;
  bool bVar4;
  int iVar5;
  int iVar6;
  ulong uVar7;
  long lVar8;
  undefined *puVar9;
  ulong uVar10;
  char *pcVar11;
  undefined8 uVar12;
  uint uVar13;
  int iVar14;
  uint uVar15;
  int iVar16;
  long in_FS_OFFSET;
  byte bVar17;
  int local_228;
  int local_224;
  undefined4 local_220;
  undefined4 local_214;
  int *local_210;
  int local_208 [32];
  undefined8 local_188;
  undefined8 local_180;
  undefined8 local_178;
  undefined8 local_170;
  undefined8 local_168;
  undefined8 local_160;
  undefined1 local_158;
  char local_148;
  uint local_147 [63];
  undefined1 local_49;
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  *(int *)(param_3 + 0x22e0) = param_2[5];
  if (*param_2 == 9) {
    if (((3 < param_2[7] - 0xffe7U) || (*(int *)(param_3 + 0xd68) < 0)) ||
       (*(int *)(param_3 + 0xd6c) < 2)) {
      iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2);
      if (iVar6 != 0) goto LAB_0014cf81;
      goto LAB_0014cf74;
    }
    local_148 = (char)*(int *)(param_3 + 0xd68);
    if (*(int *)(param_3 + 0xd10) != 0) {
      iVar6 = 0;
      iVar5 = 1;
      goto LAB_0014d003;
    }
    local_220 = 1;
    iVar5 = 1;
    iVar6 = 0;
    goto LAB_0014e201;
  }
LAB_0014cf74:
  if (*param_2 != 8) goto LAB_0014cf81;
  if (param_2[7] - 0xffe7U < 4) {
    *(undefined4 *)(param_3 + 0xd68) = 0xffffffff;
    *(undefined4 *)(param_3 + 0xd6c) = 0;
    goto LAB_0014cf81;
  }
  if (((*(uint *)(param_3 + 0x2300) & param_2[6]) != 0) &&
     (iVar6 = *(int *)(param_3 + 0xd68), iVar6 != -2)) {
    iVar5 = 8;
    switch(param_2[7]) {
    case 0xff95:
    case 0xffb7:
      iVar5 = 7;
      break;
    case 0xff96:
    case 0xffb4:
      iVar5 = 4;
      break;
    case 0xff97:
    case 0xffb8:
      break;
    case 0xff98:
    case 0xffb6:
      iVar5 = 6;
      break;
    case 0xff99:
    case 0xffb2:
      iVar5 = 2;
      break;
    case 0xff9a:
    case 0xffb9:
      iVar5 = 9;
      break;
    case 0xff9b:
    case 0xffb3:
      iVar5 = 3;
      break;
    case 0xff9c:
    case 0xffb1:
      iVar5 = 1;
      break;
    case 0xff9d:
    case 0xffb5:
      iVar5 = 5;
      break;
    case 0xff9e:
    case 0xffb0:
      iVar5 = 0;
      break;
    default:
      *(undefined4 *)(param_3 + 0xd68) = 0xfffffffe;
      goto LAB_0014d090;
    }
    if (iVar6 != -1) {
      iVar5 = iVar5 + iVar6 * 10;
    }
    *(int *)(param_3 + 0xd68) = iVar5;
    *(int *)(param_3 + 0xd6c) = *(int *)(param_3 + 0xd6c) + 1;
    goto LAB_0014cf81;
  }
LAB_0014d090:
  uVar7 = *(ulong *)(param_2 + 6) & 0xffffffff00000004;
  if (uVar7 == 0x3e00000004) {
    FUN_0014cd38(param_3,1);
    goto LAB_0014cf81;
  }
  if (uVar7 == 0x3c00000004) {
    FUN_0014cd38(param_3,0xffffffff);
    goto LAB_0014cf81;
  }
  uVar10 = *(ulong *)(param_2 + 6) & 0xffffffff00000001;
  if (uVar10 == 0xff5500000001) {
    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,-(*(int *)(param_3 + 0xd58) / 2));
    goto LAB_0014cf81;
  }
  if (uVar7 == 0xff5500000004) {
    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,0xffffffff);
    goto LAB_0014cf81;
  }
  if (uVar10 == 0xff5600000001) {
    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,*(int *)(param_3 + 0xd58) / 2);
    goto LAB_0014cf81;
  }
  if (uVar7 == 0xff5600000004) {
    FUN_001371ed(*(undefined8 *)(param_3 + 0xda0),0,1);
    goto LAB_0014cf81;
  }
  if (uVar10 == 0xff6300000001) {
    FUN_0014b0b2(param_3);
    goto LAB_0014cf81;
  }
  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x4e);
  if ((*(int *)(*(long *)(param_3 + 0xda0) + 0x1ac) == 0) ||
     (iVar6 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x43), iVar6 != 0)) {
    bVar3 = false;
LAB_0014d16b:
    local_148 = '\x1b';
    if (((iVar5 == 0) || ((8 < param_2[7] - 0xff95U && (8 < param_2[7] - 0xffb1U)))) &&
       (iVar6 = gtk_im_context_filter_keypress(*(undefined8 *)(param_3 + 0x68),param_2), iVar6 != 0)
       ) goto LAB_0014cf81;
  }
  else {
    local_148 = '\x1b';
    if (0x3a < param_2[7] - 0xff7fU) {
      bVar3 = true;
      goto LAB_0014d16b;
    }
    if ((0x7ffd801ffc04001U >> ((ulong)(param_2[7] - 0xff7fU) & 0x3f) & 1) == 0) {
      bVar3 = true;
      goto LAB_0014d16b;
    }
    bVar3 = true;
  }
  uVar7 = 0xffffffffffffffff;
  pcVar11 = *(char **)(param_2 + 10);
  do {
    if (uVar7 == 0) break;
    uVar7 = uVar7 - 1;
    cVar1 = *pcVar11;
    pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;
  } while (cVar1 != '\0');
  local_214 = FUN_00155c9b(0xffff,0,*(char **)(param_2 + 10),~uVar7 - 1,local_208,0x1f);
  local_210 = local_208;
  iVar6 = FUN_001125f4(&local_210,&local_214,local_147,0xfe,0x37,0,0,0);
  (&local_148)[iVar6 + 1] = '\0';
  if (((char)local_147[0] == '\0') && (iVar6 = FUN_001563f9(param_2[7]), -1 < iVar6)) {
    local_208[0] = 0x1b;
    local_224 = 1;
    iVar16 = 2;
    local_208[1] = iVar6;
  }
  else {
    local_49 = 0;
    lVar8 = -1;
    pcVar11 = &local_148;
    do {
      if (lVar8 == 0) break;
      lVar8 = lVar8 + -1;
      cVar1 = *pcVar11;
      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;
    } while (cVar1 != '\0');
    iVar16 = ~(uint)lVar8 - 1;
    local_224 = 0;
  }
  uVar2 = param_2[6];
  if ((*(uint *)(param_3 + 0x2300) & uVar2) == 0) {
    iVar6 = 1;
LAB_0014d45d:
    if ((char)local_147[0] == '\0') {
      if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) == 0x6000000004) goto LAB_0014d4ea;
      if (((uVar2 & 4) != 0) && (iVar16 == 2)) goto LAB_0014d49c;
    }
    else if (((uVar2 & 4) != 0) && (iVar16 == 2)) {
      if (4 < (byte)((char)local_147[0] - 0x33U)) goto LAB_0014d4a6;
      local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0] + -0x18);
    }
    goto LAB_0014d51c;
  }
  iVar6 = 0;
  if (iVar16 != 1) goto LAB_0014d45d;
  if ((char)local_147[0] == '\0') {
    if ((*(ulong *)(param_2 + 6) & 0xffffffff00000004) != 0x6000000004) {
      iVar16 = 0;
      iVar6 = 0;
      goto LAB_0014d51c;
    }
    iVar6 = 0;
LAB_0014d4ea:
    local_147[0] = CONCAT31(local_147[0]._1_3_,0x1c);
    if ((uVar2 & 4) != 0) {
      local_224 = 0;
LAB_0014d49c:
LAB_0014d4a6:
      if (((char)local_147[0] == '2') || ((char)local_147[0] == ' ')) {
        local_147[0] = (uint)local_147[0]._1_3_ << 8;
        iVar16 = 2;
      }
      else if ((char)local_147[0] == '8') {
        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);
        iVar16 = 2;
      }
      else if ((char)local_147[0] == '/') {
        local_147[0] = CONCAT31(local_147[0]._1_3_,0x1f);
        iVar16 = 2;
      }
      else {
        iVar16 = 2;
        if ((byte)((char)local_147[0] - 0x40U) < 0x3f) {
          local_147[0] = CONCAT31(local_147[0]._1_3_,(char)local_147[0]) & 0xffffff1f;
        }
      }
      goto LAB_0014d51c;
    }
    uVar7 = *(ulong *)(param_2 + 6);
    local_224 = 0;
    iVar16 = 2;
  }
  else {
    iVar16 = 0;
    iVar6 = 0;
LAB_0014d51c:
    uVar7 = *(ulong *)(param_2 + 6);
    if ((uVar7 & 0xffffffff00000004) == 0xff6b00000004) {
      if (*(long *)(param_3 + 0xd90) != 0) {
        (**(code **)(*(long *)(param_3 + 0xd90) + 0x30))(*(undefined8 *)(param_3 + 0xd98),1);
      }
      goto LAB_0014cf81;
    }
  }
  iVar14 = param_2[7];
  if (iVar14 == 0xff0d) {
    local_147[0] = CONCAT31(local_147[0]._1_3_,0xd);
    bVar4 = true;
    local_224 = 0;
    iVar16 = 2;
LAB_0014d670:
    local_220 = 0x37;
    if ((uVar7 & 0xffffffff00000001) == 0xff0800000000) {
      iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);
      local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x89U) + 0x7f);
      local_220 = 0x37;
      local_224 = 0;
      bVar4 = true;
      iVar16 = 2;
    }
  }
  else {
    if ((char)local_147[0] != '\0') {
      bVar4 = false;
      goto LAB_0014d670;
    }
    if ((((iVar14 - 0x20U & 0xffffffdf) == 0) || (iVar14 == 0x32)) && ((uVar2 & 5) == 4)) {
      iVar16 = 2;
      local_224 = 0;
    }
    bVar4 = false;
    if ((uVar7 & 0xffffffff00000005) != 0x2000000005) goto LAB_0014d670;
    local_147[0] = CONCAT31(local_147[0]._1_3_,0xa0);
    local_220 = 1;
    local_224 = 0;
    bVar4 = false;
    iVar16 = 2;
  }
  if ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) == 0xff0800000001) {
    iVar16 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x3f);
    local_147[0] = CONCAT31(local_147[0]._1_3_,(-(iVar16 == 0) & 0x77U) + 8);
    local_224 = 0;
    bVar4 = true;
    iVar16 = 2;
  }
  iVar14 = param_2[7];
  if ((iVar14 != 0xfe20) && ((*(ulong *)(param_2 + 6) & 0xffffffff00000001) != 0xff0900000001)) {
    if ((1 < iVar16) || (iVar14 != 0xff09)) goto LAB_0014d7d9;
    local_147[0] = CONCAT31(local_147[0]._1_3_,9);
    iVar16 = 2;
    goto switchD_0014d8c5_caseD_ff80;
  }
  local_147[0] = 0x5a5b1b;
  local_224 = 0;
  iVar16 = 4;
LAB_0014d7d9:
  if (iVar5 != 0) {
    switch(iVar14) {
    case 0xff95:
    case 0xffb7:
      pcVar11 = "yY\x19";
      break;
    case 0xff96:
    case 0xffb4:
      pcVar11 = "hH\b";
      break;
    case 0xff97:
    case 0xffb8:
      pcVar11 = "kK\v";
      break;
    case 0xff98:
    case 0xffb6:
      pcVar11 = "lL\f";
      break;
    case 0xff99:
    case 0xffb2:
      pcVar11 = "jJ\n";
      break;
    case 0xff9a:
    case 0xffb9:
      pcVar11 = "uU\x15";
      break;
    case 0xff9b:
    case 0xffb3:
      pcVar11 = "nN\x0e";
      break;
    case 0xff9c:
    case 0xffb1:
      pcVar11 = "bB\x02";
      break;
    case 0xff9d:
    case 0xffb5:
      pcVar11 = "...";
      break;
    default:
      goto switchD_0014d802_caseD_ff9e;
    }
    if ((param_2[6] & 4U) == 0) {
      if ((param_2[6] & 1U) == 0) {
        local_147[0] = CONCAT31(local_147[0]._1_3_,*pcVar11);
      }
      else {
        local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[1]);
      }
    }
    else {
      local_147[0] = CONCAT31(local_147[0]._1_3_,pcVar11[2]);
    }
    iVar5 = 2 - iVar6;
    local_228 = 0;
    iVar16 = 2;
    goto LAB_0014e163;
  }
switchD_0014d802_caseD_ff9e:
  if (bVar3) {
    switch(iVar14) {
    case 0xff7f:
      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {
        iVar5 = 0x50;
        goto LAB_0014d978;
      }
      iVar5 = 0x50;
      goto LAB_0014d8e1;
    default:
      goto switchD_0014d8c5_caseD_ff80;
    case 0xff8d:
      iVar5 = 0x4d;
      break;
    case 0xff95:
    case 0xffb7:
      iVar5 = 0x77;
      break;
    case 0xff96:
    case 0xffb4:
      iVar5 = 0x74;
      break;
    case 0xff97:
    case 0xffb8:
      iVar5 = 0x78;
      break;
    case 0xff98:
    case 0xffb6:
      iVar5 = 0x76;
      break;
    case 0xff99:
    case 0xffb2:
      iVar5 = 0x72;
      break;
    case 0xff9a:
    case 0xffb9:
      iVar5 = 0x79;
      break;
    case 0xff9b:
    case 0xffb3:
      iVar5 = 0x73;
      break;
    case 0xff9c:
    case 0xffb1:
      iVar5 = 0x71;
      break;
    case 0xff9d:
    case 0xffb5:
      iVar5 = 0x75;
      break;
    case 0xff9e:
    case 0xffb0:
      iVar5 = 0x70;
      break;
    case 0xff9f:
    case 0xffae:
      iVar5 = 0x6e;
      break;
    case 0xffaa:
      iVar5 = 0x52;
      goto LAB_0014d8cd;
    case 0xffab:
      iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);
      if (iVar5 == 2) {
        iVar5 = 0x6c - (uint)((param_2[6] & 1U) == 0);
      }
      else {
        iVar5 = 0x6d - (uint)((param_2[6] & 1U) == 0);
      }
      break;
    case 0xffad:
      iVar5 = 0x53;
      goto LAB_0014d8cd;
    case 0xffaf:
      iVar5 = 0x51;
LAB_0014d8cd:
      if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) goto LAB_0014d978;
LAB_0014d8e1:
      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,iVar5);
      iVar16 = 3;
      goto LAB_0014d90a;
    }
    if (*(int *)(*(long *)(param_3 + 0xda0) + 0x1b0) == 0) {
LAB_0014d978:
      __sprintf_chk(local_147,1,0xff,&DAT_0017f389,iVar5);
      iVar16 = 4;
    }
    else {
      __sprintf_chk(local_147,1,0xff,&DAT_001827ed,iVar5);
      iVar16 = 4;
    }
    goto LAB_0014d90a;
  }
switchD_0014d8c5_caseD_ff80:
  iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x41);
  uVar2 = param_2[7];
  switch(uVar2) {
  case 0xffbe:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x17;
    goto LAB_0014da2f;
  case 0xffbf:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x18;
    goto LAB_0014da2f;
  case 0xffc0:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x19;
    goto LAB_0014da2f;
  case 0xffc1:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1a;
    goto LAB_0014da2f;
  case 0xffc2:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1c;
    goto LAB_0014da2f;
  case 0xffc3:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff4) + 0x1d;
    goto LAB_0014da2f;
  case 0xffc4:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x1f;
    goto LAB_0014da2f;
  case 0xffc5:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x20;
LAB_0014da2f:
    uVar13 = param_2[6];
    uVar15 = uVar13 & 4;
    if (uVar15 != 0) goto LAB_0014e24b;
LAB_0014dbca:
    uVar15 = 0;
LAB_0014dbfe:
    if ((iVar5 != 3) || (6 < local_228)) goto LAB_0014e24b;
    local_228 = (int)(char)(&DAT_00182a60)[local_228];
    iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);
    if (iVar14 != 0) goto LAB_0014dce7;
    bVar3 = 10 < local_228;
    goto LAB_0014dd14;
  case 0xffc6:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x21;
    break;
  case 0xffc7:
    local_228 = (-(uint)((param_2[6] & 1U) == 0) & 0xfffffff3) + 0x22;
    break;
  case 0xffc8:
    local_228 = 0x17;
    break;
  case 0xffc9:
    local_228 = 0x18;
    break;
  case 0xffca:
    local_228 = 0x19;
    break;
  case 0xffcb:
    local_228 = 0x1a;
    break;
  case 0xffcc:
    local_228 = 0x1c;
    break;
  case 0xffcd:
    local_228 = 0x1d;
    break;
  case 0xffce:
    local_228 = 0x1f;
    break;
  case 0xffcf:
    local_228 = 0x20;
    break;
  case 0xffd0:
    local_228 = 0x21;
    break;
  case 0xffd1:
    local_228 = 0x22;
    break;
  default:
    uVar13 = param_2[6];
    uVar15 = uVar13 & 4;
    if (uVar15 == 0) {
      if (uVar2 == 0xff95) {
        local_228 = 1;
        goto LAB_0014dbfe;
      }
      if (uVar2 < 0xff96) {
        if (uVar2 == 0xff56) {
          local_228 = 6;
        }
        else if (uVar2 < 0xff57) {
          local_228 = 1;
          if (uVar2 != 0xff50) {
            if (uVar2 != 0xff55) {
              local_228 = 0;
              goto LAB_0014dbca;
            }
            local_228 = 5;
          }
        }
        else {
          local_228 = 4;
          if (uVar2 != 0xff57) {
            if (uVar2 != 0xff63) {
              local_228 = 0;
              goto LAB_0014dbca;
            }
            local_228 = 2;
          }
        }
        goto LAB_0014dbfe;
      }
      if (uVar2 == 0xff9c) {
        local_228 = 4;
        goto LAB_0014dbfe;
      }
      if (uVar2 < 0xff9d) {
        local_228 = 5;
        if (uVar2 != 0xff9a) {
          if (uVar2 != 0xff9b) {
            local_228 = 0;
            goto LAB_0014dbca;
          }
          local_228 = 6;
        }
        goto LAB_0014dbfe;
      }
      local_228 = 3;
      if (((uVar2 == 0xff9f) || (uVar2 == 0xffff)) || (local_228 = 2, uVar2 == 0xff9e))
      goto LAB_0014dbfe;
      local_228 = 0;
      goto LAB_0014dbca;
    }
    local_228 = 0;
    goto LAB_0014dbfe;
  }
  uVar13 = param_2[6];
  uVar15 = uVar13 & 4;
LAB_0014e24b:
  iVar14 = *(int *)(*(long *)(param_3 + 0xda0) + 0x1b0);
  if (iVar14 == 0) {
    bVar3 = 10 < local_228;
    if ((0x17 < local_228 - 0xbU) || (iVar5 != 5)) {
      if ((5 < local_228 - 1U) || (iVar5 != 5)) goto LAB_0014dd14;
      local_188 = CONCAT17(local_188._7_1_,0x4749462e4c48);
      if (local_228 == 3) {
        local_147[0] = CONCAT31(local_147[0]._1_3_,0x7f);
        iVar16 = 2;
      }
      else {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,
                      (int)*(char *)((long)&local_188 + (long)(local_228 + -1)));
        iVar16 = 4;
      }
    }
    else {
LAB_0014ddd3:
      local_188 = 0x54535251504f4e4d;
      local_180 = 0x62615a5958575655;
      local_178 = 0x6a69686766656463;
      local_170 = 0x7271706f6e6d6c6b;
      local_168 = 0x7a79787776757473;
      local_160 = 0x7b605f5e5d5c5b40;
      local_158 = 0;
      iVar5 = 8;
      switch(uVar2) {
      case 0xffbf:
        iVar5 = 1;
        break;
      case 0xffc0:
        iVar5 = 2;
        break;
      case 0xffc1:
        iVar5 = 3;
        break;
      case 0xffc2:
        iVar5 = 4;
        break;
      case 0xffc3:
        iVar5 = 5;
        break;
      case 0xffc4:
        iVar5 = 6;
        break;
      case 0xffc5:
        iVar5 = 7;
        break;
      case 0xffc6:
        break;
      case 0xffc7:
        iVar5 = 9;
        break;
      case 0xffc8:
        iVar5 = 10;
        break;
      case 0xffc9:
        iVar5 = 0xb;
        break;
      default:
        iVar5 = 0;
      }
      if ((uVar13 & 1) != 0) {
        iVar5 = iVar5 + 0xc;
      }
      if (uVar15 != 0) {
        iVar5 = iVar5 + 0x18;
      }
      __sprintf_chk(local_147,1,0xff,&DAT_0017f38e,(int)*(char *)((long)&local_188 + (long)iVar5));
      iVar16 = 4;
    }
LAB_0014d90a:
    iVar5 = iVar16 - iVar6;
    local_228 = 0;
  }
  else {
LAB_0014dce7:
    if (local_228 - 1U < 6) {
      __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(int)" HLMEIG"[local_228]);
      iVar16 = 3;
      goto LAB_0014d90a;
    }
    bVar3 = 10 < local_228;
    if ((local_228 - 0xbU < 0x18) && (iVar5 == 5)) goto LAB_0014ddd3;
LAB_0014dd14:
    if (((iVar5 == 4) || (iVar14 != 0)) && (local_228 - 0xbU < 0xe)) {
      iVar5 = (uint)(0xf < local_228) + (uint)(0x15 < local_228);
      if (iVar14 == 0) {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,(local_228 + 0x45) - iVar5);
        iVar16 = 4;
      }
      else {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,(local_228 + 0x45) - iVar5);
        iVar16 = 3;
      }
      goto LAB_0014d90a;
    }
    if (((bool)(iVar5 == 1 & bVar3)) && (local_228 < 0x10)) {
      __sprintf_chk(local_147,1,0xff,&DAT_001827e1,local_228 + 0x36);
      iVar16 = 5;
      goto LAB_0014d90a;
    }
    if (((bool)(iVar5 == 2 & bVar3)) && (local_228 < 0xf)) {
      if (iVar14 == 0) {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f389,local_228 + 0x45);
        iVar16 = 4;
      }
      else {
        __sprintf_chk(local_147,1,0xff,&DAT_0017f385,local_228 + 0x45);
        iVar16 = 3;
      }
      goto LAB_0014d90a;
    }
    if (((local_228 == 1) || (local_228 == 4)) &&
       (iVar5 = FUN_0011558e(*(undefined8 *)(param_3 + 0x22d0),0x40), iVar5 != 0)) {
      puVar9 = &DAT_001827d9;
      if (local_228 != 1) {
        puVar9 = &DAT_001827dd;
      }
      iVar16 = __sprintf_chk(local_147,1,0xff,puVar9);
      iVar16 = iVar16 + 1;
      local_228 = 0;
    }
    else {
      if (local_228 != 0) {
        iVar16 = __sprintf_chk(local_147,1,0xff,&DAT_001827e7,local_228);
        iVar16 = iVar16 + 1;
        goto LAB_0014d90a;
      }
      switch(param_2[7]) {
      case 0xff51:
      case 0xff96:
        uVar12 = 0x44;
        break;
      case 0xff52:
      case 0xff97:
        uVar12 = 0x41;
        break;
      case 0xff53:
      case 0xff98:
        uVar12 = 0x43;
        break;
      case 0xff54:
      case 0xff99:
        uVar12 = 0x42;
        break;
      default:
        local_228 = local_224;
        goto LAB_0014e155;
      case 0xff58:
      case 0xff9d:
        uVar12 = 0x47;
      }
      iVar16 = FUN_00137d44(local_147,*(undefined8 *)(param_3 + 0xda0),uVar12,param_2[6] & 4);
      iVar16 = iVar16 + 1;
    }
LAB_0014e155:
    iVar5 = iVar16 - iVar6;
    if (iVar5 < 1) goto LAB_0014cf81;
  }
LAB_0014e163:
  if (bVar4) {
    (&local_148)[iVar16] = '\0';
    if (*(long *)(param_3 + 0xd88) != 0) {
      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,0xfffffffe,1);
    }
  }
  else if (*(int *)(param_3 + 0xd10) == 0) {
    if (local_228 == 0) {
LAB_0014e201:
      if (*(long *)(param_3 + 0xd88) != 0) {
        FUN_0011f45f(*(long *)(param_3 + 0xd88),local_220,&local_148 + iVar6,iVar5,1);
      }
    }
    else if (*(long *)(param_3 + 0xd88) != 0) {
      FUN_0011f2ad(*(long *)(param_3 + 0xd88),local_208 + iVar6,iVar5,1);
    }
  }
  else {
LAB_0014d003:
    if (*(long *)(param_3 + 0xd88) != 0) {
      FUN_0011eaac(*(long *)(param_3 + 0xd88),&local_148 + iVar6,iVar5,1);
    }
  }
  FUN_001495b0(param_3,0);
  FUN_0013112b(*(undefined8 *)(param_3 + 0xda0));
LAB_0014cf81:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return 1;
}

